<SEC-DOCUMENT>0000929638-21-000592.txt : 20210407
<SEC-HEADER>0000929638-21-000592.hdr.sgml : 20210407
<ACCEPTANCE-DATETIME>20210407143426
ACCESSION NUMBER:		0000929638-21-000592
CONFORMED SUBMISSION TYPE:	40-F
PUBLIC DOCUMENT COUNT:		125
CONFORMED PERIOD OF REPORT:	20210131
FILED AS OF DATE:		20210407
DATE AS OF CHANGE:		20210407

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:		21811789

	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>a20210329_form40f.htm
<TEXT>
<html>
  <head>
    <title></title>
    <!-- Licensed to: morganlewis
         Document created using EDGARfilings PROfile 7.4.0.0
         Copyright 1995 - 2021 Broadridge -->
  </head>
<body style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000;" bgcolor="#ffffff">
  <div>
    <div>
      <div style="text-align: center; color: #000000; font-size: 18pt; font-weight: bold;">UNITED STATES</div>
      <div style="text-align: center; color: #000000; font-size: 18pt; font-weight: bold;">SECURITIES AND EXCHANGE COMMISSION</div>
      <div style="text-align: center; color: #000000; font-weight: bold;">WASHINGTON, D.C. 20549</div>
      <div style="text-align: center; color: #000000; font-weight: bold;"> <br>
      </div>
      <div style="text-align: center;">
        <hr style="background-color: #000000; border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0px auto; height: 1px; width: 175pt; color: #000000;" align="center" noshade="noshade"></div>
    </div>
    <div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: center; color: #000000; font-size: 18pt; font-weight: bold;">FORM&#160;40-F</div>
      <div style="text-align: center; color: rgb(0, 0, 0); font-family: 'Times New Roman',Times,serif; font-weight: bold;">&#160; <br>
      </div>
      <div style="text-align: center;">
        <hr style="height: 1px; width: 175pt; color: #000000; background-color: #000000; margin-left: auto; margin-right: auto; border: none;" align="center" noshade="noshade"></div>
    </div>
    <div>
      <div><br>
      </div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" id="z2806c39c1a5345fdb7860de88b978e6b" border="0" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 72pt; vertical-align: top;">
            <div style="color: #000000; font-family: 'Segoe UI Symbol', sans-serif; font-weight: bold;">&#9744;</div>
          </td>
          <td style="vertical-align: top;">
            <div style="color: #000000; font-weight: bold;">REGISTRATION STATEMENT PURSUANT TO SECTION&#160;12 OF THE SECURITIES EXCHANGE ACT OF 1934</div>
          </td>
        </tr>

    </table>
    <div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: center; color: #000000; font-weight: bold;">OR</div>
    </div>
    <div>
      <div><br>
      </div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" id="z1dc4bd1acd2046828bd79cdac4ef9d34" border="0" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 72pt; vertical-align: top;">
            <div style="color: #000000; font-family: 'Segoe UI Symbol', sans-serif; font-weight: bold;">&#9746;</div>
          </td>
          <td style="vertical-align: top;">
            <div style="color: #000000; font-weight: bold;">ANNUAL REPORT PURSUANT TO SECTION&#160;13(a)&#160;OR 15(d)&#160;OF THE SECURITIES EXCHANGE ACT OF 1934</div>
          </td>
        </tr>

    </table>
    <div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: center; color: #000000; font-weight: bold;">For the fiscal year ended January&#160;31, 2021</div>
    </div>
    <div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: center; color: #000000; font-weight: bold;">Commission File Number: 000-29970</div>
      <div style="text-align: center; color: #000000; font-weight: bold;"> <br>
      </div>
      <div style="text-align: center;">
        <hr style="height: 1px; width: 175pt; color: #000000; background-color: #000000; margin-left: auto; margin-right: auto; border: none;" align="center" noshade="noshade"></div>
    </div>
    <div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: center; color: #000000; font-size: 18pt; font-weight: bold;">THE DESCARTES SYSTEMS GROUP INC.</div>
      <div style="text-align: center; color: #000000;">(Exact name of Registrant as specified in its charter)</div>
      <div style="text-align: center; color: #000000;"> <br>
      </div>
      <div style="text-align: center;">
        <hr style="height: 1px; width: 175pt; color: #000000; background-color: #000000; margin-left: auto; margin-right: auto; border: none;" align="center" noshade="noshade"></div>
      <div><br>
      </div>
      <div style="text-align: center; color: #000000; font-weight: bold;">N/A</div>
      <div style="text-align: center; color: #000000;">(Translation of Registrant's name into English (if applicable))</div>
    </div>
    <div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: center; color: #000000; font-weight: bold;">Canada</div>
      <div style="text-align: center; color: #000000;">(Province or other jurisdiction of incorporation or organization)</div>
    </div>
    <div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: center; color: #000000; font-weight: bold;">N/A</div>
      <div style="text-align: center; color: #000000;">(Primary Standard Industrial Classification Code Number (if applicable))</div>
    </div>
    <div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: center; color: #000000; font-weight: bold;">N/A</div>
      <div style="text-align: center; color: #000000;">(I.R.S. Employer Identification Number (if applicable))</div>
    </div>
    <div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: center; color: #000000; font-weight: bold;">120 Randall Drive, Waterloo, Ontario, Canada N2V 1C6</div>
      <div style="text-align: center; color: #000000; font-weight: bold;">Tel: (519) 746-8110</div>
      <div style="text-align: center; color: #000000;">(Address and telephone number of Registrant's principal executive offices)</div>
    </div>
    <div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: center; color: #000000; font-weight: bold;">Descartes Systems (USA) LLC</div>
      <div style="text-align: center; color: #000000; font-weight: bold;">Powers Ferry Business Park</div>
      <div style="text-align: center; color: #000000; font-weight: bold;">2030 Powers Ferry Road SE</div>
      <div style="text-align: center; color: #000000; font-weight: bold;">Suite&#160;350</div>
      <div style="text-align: center; color: #000000; font-weight: bold;">Atlanta, GA 30339-5066</div>
      <div style="text-align: center; color: #000000; font-weight: bold;">Tel: (678) 247-0400</div>
      <div style="text-align: center; color: #000000;">(Name, address (including zip code) and telephone number</div>
      <div style="text-align: center; color: #000000;">(including area code) of agent for service in the United States)</div>
    </div>
    <div>
      <div><br>
      </div>
      <div style="text-align: center; color: #000000;">Securities registered or to be registered pursuant to Section&#160;12(b)&#160;of the Act.</div>
      <div><br>
      </div>
      <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
        <div id="DSPFPageBreak" style="page-break-after: always;">
          <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;" noshade="noshade"></div>
      </div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" id="z64675d8809ba4dc3b9b65f9d95341b6d" border="0" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 42.01%; vertical-align: top; border-bottom: #000000 1px solid;">
            <div style="text-align: center; color: #000000; font-weight: bold;">Title of each class:</div>
          </td>
          <td style="width: 2.04%; vertical-align: top; border-bottom: #000000 1px solid;">&#160;</td>
          <td style="width: 12.02%; vertical-align: top; border-bottom: #000000 1px solid;">
            <div style="text-align: center; color: #000000; font-weight: bold;">Trading Symbol(s):</div>
            <div>&#160;</div>
          </td>
          <td style="width: 1.98%; vertical-align: top; border-bottom: #000000 1px solid;">&#160;</td>
          <td style="width: 41.96%; vertical-align: top; border-bottom: #000000 1px solid;">
            <div style="text-align: center; color: #000000; font-weight: bold;">Name of each exchange on which registered:</div>
          </td>
        </tr>
        <tr>
          <td style="width: 42.01%; vertical-align: bottom;">
            <div style="text-align: center; color: #000000; font-weight: bold;">Common Shares, no par value</div>
          </td>
          <td style="width: 2.04%; vertical-align: bottom;">&#160;</td>
          <td style="width: 12.02%; vertical-align: bottom;">
            <div style="text-align: center; color: #000000; font-weight: bold;">DSGX</div>
          </td>
          <td style="width: 1.98%; vertical-align: bottom;">&#160;</td>
          <td style="width: 41.96%; vertical-align: bottom;">
            <div style="text-align: center; color: #000000; font-weight: bold;">Nasdaq</div>
          </td>
        </tr>
        <tr>
          <td style="width: 42.01%; vertical-align: bottom;">
            <div style="text-align: center; color: #000000; font-weight: bold;">Rights to purchase Common Shares, no par value</div>
          </td>
          <td style="width: 2.04%; vertical-align: bottom;">&#160;</td>
          <td style="width: 12.02%; vertical-align: bottom;">
            <div style="text-align: center; text-indent: 18.7pt; color: #000000; font-weight: bold;">N/A</div>
          </td>
          <td style="width: 1.98%; vertical-align: bottom;">&#160;</td>
          <td style="width: 41.96%; vertical-align: bottom;">
            <div style="text-align: center; color: #000000; font-weight: bold;">Nasdaq</div>
          </td>
        </tr>

    </table>
    <div>
      <div><br>
      </div>
      <div style="text-align: center; color: #000000;">Securities registered or to be registered pursuant to Section&#160;12(g)&#160;of the Act.</div>
      <div>&#160; <br>
      </div>
      <div style="text-align: center; color: #000000; font-weight: bold;">None</div>
    </div>
    <div>
      <div style="text-align: center; color: #000000;">(Title of Class)</div>
      <div style="text-align: center; color: #000000;"> <br>
      </div>
    </div>
    <div>
      <div style="text-align: center; color: #000000;">Securities for which there is a reporting obligation pursuant to Section&#160;15(d)&#160;of the Act.</div>
      <div>&#160;</div>
      <div style="text-align: center; color: #000000; font-weight: bold;">N/A</div>
      <div style="text-align: center; color: #000000;">(Title of Class)</div>
      <div>&#160;</div>
    </div>
    <div>
      <div style="color: #000000;">For annual reports, indicate by check mark the information filed with this Form:</div>
      <div>&#160;</div>
    </div>
    <div>
      <div style="text-align: center; color: #000000;"><font style="font-family: 'Segoe UI Symbol', sans-serif;">&#9746;</font>&#160;&#160;Annual information form&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<font style="font-family: 'Segoe UI Symbol', sans-serif;">&#9746;</font>&#160;&#160;Audited annual financial
        statements</div>
      <div>&#160;</div>
    </div>
    <div>
      <div style="color: #000000;">Indicate the number of outstanding shares of each of the issuer's classes of capital or common stock as of the close of the period covered by the annual report.</div>
      <div>&#160;</div>
    </div>
    <div>
      <div style="text-align: center; color: #000000;">84,494,658 common shares&#160;as of January&#160;31, 2021</div>
      <div>&#160;</div>
    </div>
    <div>
      <div style="color: #000000;">Indicate by check mark whether the Registrant (1)&#160;has filed all reports required to be filed by Section&#160;13 or 15(d)&#160;of the Exchange Act during the preceding 12 months (or for such shorter period that the Registrant was
        required to file such reports) and (2)&#160;has been subject to such filing requirements for the past 90 days.</div>
      <div>&#160;</div>
    </div>
    <div>
      <div style="text-align: center; color: #000000;">Yes&#160;&#160;&#160;<font style="font-family: 'Segoe UI Symbol', sans-serif;">&#9746;</font>&#160;&#160;&#160;&#160;&#160;&#160;&#160; No&#160;&#160;&#160;<font style="font-family: 'Segoe UI Symbol', sans-serif;">&#9744;</font></div>
      <div>&#160;</div>
    </div>
    <div>
      <div style="color: #000000;">Indicate by check mark whether the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule&#160;405 of Regulation S-T (&#167; 232.405 of this chapter) during the preceding 12
        months (or for such shorter period that the Registrant was required to submit such files).</div>
      <div>&#160;</div>
    </div>
    <div>
      <div style="text-align: center; color: #000000;">Yes&#160;&#160;&#160;<font style="font-family: 'Segoe UI Symbol', sans-serif;">&#9746;</font>&#160;&#160;&#160;&#160;No&#160;<font style="font-family: 'Segoe UI Symbol', sans-serif;">&#9744;</font></div>
      <div>&#160;</div>
    </div>
    <div>
      <div style="color: #000000;">Indicate by check mark whether the registrant is an emerging growth company as defined in Rule 12b-2 of the Exchange Act.</div>
      <div>&#160;</div>
    </div>
    <div>
      <div style="text-align: right; color: #000000;">Emerging growth company&#160;&#160;&#160;&#160;<font style="font-family: 'Segoe UI Symbol', sans-serif;">&#9744;</font></div>
      <div>&#160;</div>
    </div>
    <div>
      <div style="color: #000000;">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 13(a) of the Exchange Act.&#160;&#160;&#160;<font style="font-family: 'Segoe UI Symbol', sans-serif;">&#9744;</font></div>
      <div>&#160;</div>
      <div style="color: #000000;">Indicate by check mark whether the registrant has filed a report on and attestation to its managements&#8217; assessment of the effectiveness of its internal control over financial reporting under Section 404(b) of the
        Sarbanes-Oxley Act (15 U.S.C. 7262(b)) by the registered public accounting firm that prepared or issued its audit report.<font style="font-family: 'Segoe UI Symbol', sans-serif;"> &#9746;</font>&#160;&#160;&#160;&#160;</div>
      <div>&#160;</div>
      <div>&#160;</div>
      <div><br>
      </div>
      <div>&#160;</div>
      <div>&#160;</div>
      <div><br>
      </div>
    </div>
    <div>
      <div>&#160;</div>
      <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
        <div id="DSPFPageBreak" style="page-break-after: always;">
          <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;" noshade="noshade"></div>
      </div>
      <div style="text-align: center; color: #000000;">CERTIFICATIONS</div>
      <div>&#160;</div>
    </div>
    <div>
      <div style="text-align: center; color: #000000;">See Exhibits 99.4, 99.5 and 99.6 to this Annual Report on Form&#160;40-F.</div>
      <div>&#160; <br>
      </div>
    </div>
    <div>
      <div style="text-align: center; color: #000000;">CONTROLS AND PROCEDURES</div>
      <div>&#160;</div>
    </div>
    <div>
      <div style="text-align: center; color: #000000;">DISCLOSURE CONTROLS AND PROCEDURES</div>
      <div>&#160; <br>
      </div>
    </div>
    <div>
      <div style="color: #000000;">The Registrant, under the supervision and with the participation of the Registrant&#8217;s management, including the Registrant&#8217;s Chief Executive Officer (principal executive officer) and Chief Financial Officer (principal
        financial officer), evaluated the effectiveness of the Registrant&#8217;s disclosure controls and procedures as of January&#160;31, 2021 (the &#8220;<u>Evaluation Date</u>&#8221;), pursuant to Rule&#160;13a-15(b)&#160;promulgated under the Securities Exchange Act of 1934, as
        amended (the &#8220;<u>Exchange Act</u>&#8221;). Based upon that evaluation, the Registrant&#8217;s Chief Executive Officer and Chief Financial Officer concluded that, as of the Evaluation Date, the Registrant&#8217;s disclosure controls and procedures were effective.</div>
      <div>&#160;</div>
    </div>
    <div>
      <div style="text-align: center; color: #000000;">INTERNAL CONTROL OVER FINANCIAL REPORTING</div>
      <div>&#160;</div>
    </div>
    <div>
      <div style="color: #000000; font-weight: bold;">Management's Report on Financial Statements and Internal Control Over Financial Reporting</div>
      <div>&#160;</div>
    </div>
    <div>
      <div style="color: #000000;">Management&#8217;s Report on Financial Statements and Internal Control Over Financial Reporting is contained in the Registrant&#8217;s 2021 Annual Report filed herewith as Exhibit&#160;99.2 and incorporated herein by reference.</div>
      <div>&#160; <br>
      </div>
    </div>
    <div>
      <div style="color: #000000; font-weight: bold;">Report of Independent Registered Public Accounting Firm</div>
      <div>&#160;<br>
      </div>
    </div>
    <div>
      <div style="color: #000000;">The report of KPMG LLP with respect to the effectiveness of the Registrant&#8217;s internal control over financial reporting is contained in the Registrant&#8217;s 2021 Annual Report filed herewith as Exhibit&#160;99.2 and incorporated
        herein by reference.</div>
      <div>&#160;</div>
    </div>
    <div>
      <div style="color: #000000; font-weight: bold;">Changes in Internal Control Over Financial Reporting</div>
      <div style="color: #000000; font-weight: bold;"> <br>
      </div>
    </div>
    <div>
      <div style="color: #000000;">During the period covered by this Annual Report on Form&#160;40-F, there have been no changes in the Registrant&#8217;s internal control over financial reporting that have materially affected, or are reasonably likely to materially
        affect, the Registrant&#8217;s internal control over financial reporting.</div>
      <div>&#160;</div>
    </div>
    <div>
      <div style="text-align: center; color: #000000;">NOTICES PURSUANT TO RULE 104 OF REGULATION BTR<br>
        <br>
      </div>
    </div>
    <div>
      <div style="color: #000000;">None.</div>
      <div>&#160; <br>
      </div>
    </div>
    <div>
      <div style="text-align: center; color: #000000;">AUDIT COMMITTEE FINANCIAL EXPERT</div>
      <div>&#160;</div>
    </div>
    <div>
      <div style="color: #000000;">The Registrant&#8217;s Audit Committee of the Board of Directors currently consists of three members. The Registrant&#8217;s Board of Directors has determined that John J. Walker and Eric Demirian are &#8220;audit committee financial
        experts&#8221; (as defined in paragraph 8(b)&#160;of General Instruction B to Form&#160;40-F). All members of the Audit Committee are independent within the meaning of the Nasdaq Stock Market&#8217;s (&#8220;<u>Nasdaq</u>&#8221;) director independence standards.</div>
      <div>&#160;</div>
    </div>
    <div>
      <div style="text-align: center; color: #000000;">CODE OF ETHICS</div>
    </div>
    <div>
      <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
        <div id="DSPFPageBreak" style="page-break-after: always;">
          <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;" noshade="noshade"></div>
      </div>
      <div style="color: #000000;">The Registrant has adopted a Code of Business Conduct and Ethics (the &#8220;<u>Code of Ethics</u>&#8221;) that applies to the Registrant&#8217;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&#8217;s corporate website at&#160;<font style="font-style: italic;">www.descartes.com</font>&#160;and is also available at&#160;<font style="font-style: italic;">www.sedar.com</font>. 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.</div>
      <div>&#160;</div>
    </div>
    <div>
      <div style="text-align: center; color: #000000;">INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM FEES AND SERVICES</div>
      <div style="text-align: center; color: #000000;"> <br>
      </div>
    </div>
    <div>
      <div style="color: #000000;">The aggregate fees billed in respect of the fiscal years ended January&#160;31, 2021 and January&#160;31, 2020 for professional services rendered by KPMG LLP, the Registrant&#8217;s Independent Registered Public Accounting Firm, are as
        follows (all amounts in table are in US dollars &#8212; 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):</div>
      <div>&#160;</div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" id="zcb25eea4eb9d4a49b4a8c5ed4a358b97" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 68.96%; vertical-align: bottom;">&#160;</td>
          <td style="width: 2.01%; vertical-align: bottom;">&#160;</td>
          <td colspan="2" style="width: 13.07%; vertical-align: bottom; border-bottom: #000000 4px double;">
            <div style="text-align: center; color: #000000; font-weight: bold;">Fiscal<br>
              Year<br>
              Ended<br>
              January<br>
              31,<br>
              2021</div>
          </td>
          <td style="width: 2.02%; vertical-align: bottom;">&#160;</td>
          <td colspan="2" style="width: 13.02%; vertical-align: bottom; border-bottom: #000000 4px double;">
            <div style="text-align: center; color: #000000; font-weight: bold;">Fiscal<br>
              Year<br>
              Ended<br>
              January<br>
              31,<br>
              2020</div>
          </td>
          <td style="width: 0.92%; vertical-align: bottom;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 68.96%; vertical-align: top; background-color: #CCEEFF;">
            <div style="color: #000000;">Audit Fees</div>
          </td>
          <td style="width: 2.01%; vertical-align: bottom; background-color: #CCEEFF;">&#160;</td>
          <td style="width: 1.07%; vertical-align: bottom; background-color: #CCEEFF;">
            <div style="color: #000000;">$</div>
          </td>
          <td style="width: 12%; vertical-align: bottom; background-color: #CCEEFF;">
            <div style="text-align: right; color: #000000;">651,748</div>
          </td>
          <td style="width: 2.02%; vertical-align: bottom; background-color: #CCEEFF;">&#160;</td>
          <td style="width: 1.07%; vertical-align: bottom; background-color: #CCEEFF;">
            <div style="color: #000000;">$</div>
          </td>
          <td style="width: 11.96%; vertical-align: bottom; background-color: #CCEEFF;">
            <div style="text-align: right; color: #000000;">769,782</div>
          </td>
          <td style="width: 0.92%; vertical-align: bottom; background-color: #CCEEFF;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 68.96%; vertical-align: top;">&#160;</td>
          <td style="width: 2.01%; vertical-align: bottom;">&#160;</td>
          <td colspan="2" style="width: 13.07%; vertical-align: bottom;">&#160;</td>
          <td style="width: 2.02%; vertical-align: bottom;">&#160;</td>
          <td colspan="2" style="width: 13.02%; vertical-align: bottom;">&#160;</td>
          <td style="width: 0.92%; vertical-align: bottom;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 68.96%; vertical-align: top; background-color: #CCEEFF;">
            <div style="color: #000000;">Audit-Related Fees</div>
          </td>
          <td style="width: 2.01%; vertical-align: bottom; background-color: #CCEEFF;">&#160;</td>
          <td style="width: 1.07%; vertical-align: bottom; background-color: #CCEEFF;">
            <div style="color: #000000;">$</div>
          </td>
          <td style="width: 12%; vertical-align: bottom; background-color: #CCEEFF;">
            <div style="text-align: right; color: #000000;">2,430</div>
          </td>
          <td style="width: 2.02%; vertical-align: bottom; background-color: #CCEEFF;">&#160;</td>
          <td style="width: 1.07%; vertical-align: bottom; background-color: #CCEEFF;">
            <div style="color: #000000;">$</div>
          </td>
          <td style="width: 11.96%; vertical-align: bottom; background-color: #CCEEFF;">
            <div style="text-align: right; color: #000000;">2,430</div>
          </td>
          <td style="width: 0.92%; vertical-align: bottom; background-color: #CCEEFF;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 68.96%; vertical-align: top;">&#160;</td>
          <td style="width: 2.01%; vertical-align: bottom;">&#160;</td>
          <td colspan="2" style="width: 13.07%; vertical-align: bottom;">&#160;</td>
          <td style="width: 2.02%; vertical-align: bottom;">&#160;</td>
          <td colspan="2" style="width: 13.02%; vertical-align: bottom;">&#160;</td>
          <td style="width: 0.92%; vertical-align: bottom;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 68.96%; vertical-align: top; background-color: #CCEEFF;">
            <div style="color: #000000;">Tax Fees</div>
          </td>
          <td style="width: 2.01%; vertical-align: bottom; background-color: #CCEEFF;">&#160;</td>
          <td style="width: 1.07%; vertical-align: bottom; background-color: #CCEEFF;">
            <div style="color: #000000;">$</div>
          </td>
          <td style="width: 12%; vertical-align: bottom; background-color: #CCEEFF;">
            <div style="text-align: right; color: #000000;">Nil</div>
          </td>
          <td style="width: 2.02%; vertical-align: bottom; background-color: #CCEEFF;">&#160;</td>
          <td style="width: 1.07%; vertical-align: bottom; background-color: #CCEEFF;">
            <div style="color: #000000;">$</div>
          </td>
          <td style="width: 11.96%; vertical-align: bottom; background-color: #CCEEFF;">
            <div style="text-align: right; color: #000000;">Nil</div>
          </td>
          <td style="width: 0.92%; vertical-align: bottom; background-color: #CCEEFF;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 68.96%; vertical-align: top;">&#160;</td>
          <td style="width: 2.01%; vertical-align: bottom;">&#160;</td>
          <td colspan="2" style="width: 13.07%; vertical-align: bottom;">&#160;</td>
          <td style="width: 2.02%; vertical-align: bottom;">&#160;</td>
          <td colspan="2" style="width: 13.02%; vertical-align: bottom;">&#160;</td>
          <td style="width: 0.92%; vertical-align: bottom;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 68.96%; vertical-align: top; background-color: #CCEEFF;">
            <div style="color: #000000;">All Other Fees</div>
          </td>
          <td style="width: 2.01%; vertical-align: bottom; background-color: #CCEEFF;">&#160;</td>
          <td style="width: 1.07%; vertical-align: bottom; background-color: #CCEEFF;">
            <div style="color: #000000;">$</div>
          </td>
          <td style="width: 12%; vertical-align: bottom; background-color: #CCEEFF;">
            <div style="text-align: right; color: #000000;">Nil</div>
          </td>
          <td style="width: 2.02%; vertical-align: bottom; background-color: #CCEEFF;">&#160;</td>
          <td style="width: 1.07%; vertical-align: bottom; background-color: #CCEEFF;">
            <div style="color: #000000;">$</div>
          </td>
          <td style="width: 11.96%; vertical-align: bottom; background-color: #CCEEFF;">
            <div style="text-align: right; color: #000000;">Nil</div>
          </td>
          <td style="width: 0.92%; vertical-align: bottom; background-color: #CCEEFF;">&#160;</td>
        </tr>

    </table>
    <div>
      <div><br>
      </div>
      <div style="color: #000000;">AUDIT FEES&#8212; Audit fees consist of fees and related disbursements for professional services rendered for the audit of the Registrant&#8217;s annual consolidated financial statements, reviews of the Registrant&#8217;s interim
        consolidated financial statements, services provided in connection with regulatory filings and statutory audits of certain of the Registrant&#8217;s foreign subsidiaries.</div>
      <div>&#160;</div>
      <div style="color: #000000;">AUDIT RELATED FEES&#8212; 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&#8217;s financial statements and are not reported
        as Audit Fees.</div>
      <div>&#160; <br>
      </div>
    </div>
    <div>
      <div style="text-align: center; color: #000000;">PRE-APPROVAL POLICIES AND PROCEDURES</div>
      <div style="text-align: center; color: #000000;"> <br>
      </div>
    </div>
    <div>
      <div style="color: #000000;">The Registrant&#8217;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&#8217;s Pre-Approval Policy and Procedure for Engagements of the Independent Auditor is filed as&#160;<u>Appendix B</u>&#160;to the Registrant&#8217;s Annual Information Form&#160;dated
        April 7, 2021 filed as Exhibit&#160;99.1 hereto and incorporated by reference herein.</div>
      <div>&#160;</div>
    </div>
    <div>
      <div style="text-align: center; color: #000000;">OFF-BALANCE SHEET ARRANGEMENTS</div>
      <div style="text-align: center; color: #000000;"> <br>
      </div>
    </div>
    <div>
      <div style="color: #000000;">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&#8217;s financial condition, changes in financial condition, revenues or
        expenses, results of operations, liquidity, capital expenditures or capital resources that are material to investors.</div>
      <div>&#160;</div>
    </div>
    <div>
      <div style="text-align: center; color: #000000;">TABULAR DISCLOSURE OF CONTRACTUAL OBLIGATIONS</div>
      <div>&#160;</div>
      <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
        <div id="DSPFPageBreak" style="page-break-after: always;">
          <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;" noshade="noshade"></div>
      </div>
    </div>
    <div>
      <div style="color: #000000;">The following table presents, as of January&#160;31, 2021, the Registrant&#8217;s known contractual obligations in respect of operating lease obligations (in millions of U.S. dollars):</div>
      <div style="color: #000000;"> <br>
      </div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" id="z8530a1adb3ff4081a032eb5f27815e39" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 36.34%; vertical-align: bottom;">&#160;</td>
          <td style="width: 13.9%; vertical-align: bottom; border-bottom: #000000 4px double;">
            <div style="text-align: center; color: #000000; font-weight: bold;">Less&#160;than<br>
              1&#160;year</div>
          </td>
          <td style="width: 13.21%; vertical-align: bottom; border-bottom: #000000 4px double;">
            <div style="text-align: center; color: #000000; font-weight: bold;">1-3&#160;years</div>
          </td>
          <td style="width: 13.14%; vertical-align: bottom; border-bottom: #000000 4px double;">
            <div style="text-align: center; color: #000000; font-weight: bold;">4-5&#160;years</div>
          </td>
          <td style="width: 15.5%; vertical-align: bottom; border-bottom: #000000 4px double;">
            <div style="text-align: center; color: #000000; font-weight: bold;">More&#160;than<br>
              5&#160;years</div>
          </td>
          <td style="width: 7.92%; vertical-align: bottom; border-bottom: #000000 4px double;">
            <div style="text-align: center; color: #000000; font-weight: bold;">Total</div>
          </td>
        </tr>
        <tr>
          <td style="width: 36.34%; vertical-align: top;">&#160;</td>
          <td style="width: 13.9%; vertical-align: bottom;">&#160;</td>
          <td style="width: 13.21%; vertical-align: bottom;">&#160;</td>
          <td style="width: 13.14%; vertical-align: bottom;">&#160;</td>
          <td style="width: 15.5%; vertical-align: bottom;">&#160;</td>
          <td style="width: 7.92%; vertical-align: bottom;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 36.34%; vertical-align: top;">&#160;</td>
          <td style="width: 13.9%; vertical-align: bottom;">&#160;</td>
          <td style="width: 13.21%; vertical-align: bottom;">&#160;</td>
          <td style="width: 13.14%; vertical-align: bottom;">&#160;</td>
          <td style="width: 15.5%; vertical-align: bottom;">&#160;</td>
          <td style="width: 7.92%; vertical-align: bottom;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 36.34%; vertical-align: top; background-color: #CCEEFF;">
            <div style="color: #000000;">Operating lease obligations</div>
          </td>
          <td style="width: 13.9%; vertical-align: bottom; background-color: #CCEEFF;">
            <div style="text-align: right; color: #000000;">4,544</div>
          </td>
          <td style="width: 13.21%; vertical-align: bottom; background-color: #CCEEFF;">
            <div style="text-align: right; color: #000000;">6,169</div>
          </td>
          <td style="width: 13.14%; vertical-align: bottom; background-color: #CCEEFF;">
            <div style="text-align: right; color: #000000;">2,679</div>
          </td>
          <td style="width: 15.5%; vertical-align: bottom; background-color: #CCEEFF;">
            <div style="text-align: right; color: #000000;">420</div>
          </td>
          <td style="width: 7.92%; vertical-align: bottom; background-color: #CCEEFF;">
            <div style="text-align: right; color: #000000;">13,812</div>
          </td>
        </tr>
        <tr>
          <td style="width: 36.34%; vertical-align: top;">&#160;</td>
          <td style="width: 13.9%; vertical-align: bottom; border-bottom: #000000 4px double;">&#160;</td>
          <td style="width: 13.21%; vertical-align: bottom; border-bottom: #000000 4px double;">&#160;</td>
          <td style="width: 13.14%; vertical-align: bottom; border-bottom: #000000 4px double;">&#160;</td>
          <td style="width: 15.5%; vertical-align: bottom; border-bottom: #000000 4px double;">&#160;</td>
          <td style="width: 7.92%; vertical-align: bottom; border-bottom: #000000 4px double;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 36.34%; vertical-align: top; background-color: #CCEEFF;">
            <div style="color: #000000;">Total</div>
          </td>
          <td style="width: 13.9%; vertical-align: bottom; background-color: #CCEEFF; border-bottom: #000000 4px double;">
            <div style="text-align: right; color: #000000;">4,544</div>
          </td>
          <td style="width: 13.21%; vertical-align: bottom; background-color: #CCEEFF; border-bottom: #000000 4px double;">
            <div style="text-align: right; color: #000000;">6,169</div>
          </td>
          <td style="width: 13.14%; vertical-align: bottom; background-color: #CCEEFF; border-bottom: #000000 4px double;">
            <div style="text-align: right; color: #000000;">2,679</div>
          </td>
          <td style="width: 15.5%; vertical-align: bottom; background-color: #CCEEFF; border-bottom: #000000 4px double;">
            <div style="text-align: right; color: #000000;">420</div>
          </td>
          <td style="width: 7.92%; vertical-align: bottom; background-color: #CCEEFF; border-bottom: #000000 4px double;">
            <div style="text-align: right; color: #000000;">13,812</div>
          </td>
        </tr>

    </table>
    <div>
      <div><br>
      </div>
      <div style="color: #000000;"><u>Lease Obligations</u></div>
      <div>&#160; <br>
      </div>
      <div style="color: #000000;">The Registrant is committed under non-cancelable operating leases for business premises, computer equipment and vehicles with terms expiring at various dates through 2029.&#160;&#160;The future minimum amounts payable under these
        lease agreements are outlined in the table above.</div>
      <div>&#160; <br>
      </div>
      <div style="color: #000000;"><u>Other Obligations</u></div>
      <div style="color: #000000; font-weight: bold;">Deferred Share Unit and Cash-Settled Restricted Share Unit Plans</div>
      <div>&#160;</div>
      <div style="color: #000000;">As described in Note 2 to the Registrant&#8217;s audited consolidated financial statements, the Registrant maintains Deferred Share Unit (&#8220;<u>DSU</u>&#8221;) and Cash-Settled Restricted Share Unit (&#8220;<u>CRSU</u>&#8221;) plans for its
        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, the Registrant had an unrecognized aggregate amount for unvested CRSUs and unearned DSUs of $1.5 million and nil, respectively, at January&#160;31, 2021. The ultimate liability for any payment of
        DSUs and CRSUs is dependent on the trading price of the Registrant&#8217;s common shares.</div>
      <div>&#160;</div>
    </div>
    <div>
      <div style="text-align: center; color: #000000;">IDENTIFICATION OF THE AUDIT COMMITTEE</div>
      <div>&#160;</div>
    </div>
    <div>
      <div style="color: #000000;">The Registrant has a separately designated standing audit committee established in accordance with Section&#160;3(a)(58)(A)&#160;of the Exchange Act. The members of the audit committee as of the date of the filing of this 40-F are:
        Mr.&#160;John J. Walker (Chair), Ms.&#160;Deborah Close and Mr.&#160;Eric Demirian.</div>
      <div>&#160;</div>
    </div>
    <div>
      <div style="text-align: center; color: #000000;">MINE SAFETY DISCLOSURE</div>
      <div>&#160; <br>
      </div>
    </div>
    <div>
      <div style="color: #000000;">Not applicable.</div>
      <div style="color: #000000;"> <br>
      </div>
    </div>
    <div>
      <div style="text-align: center; color: #000000;">DISCLOSURE PURSUANT TO THE REQUIREMENTS OF NASDAQ</div>
      <div>&#160;</div>
    </div>
    <div>
      <div style="color: #000000;">The Registrant was granted an exemption from Nasdaq Stock Market Rules&#160;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&#8217;s common voting stock. This exemption was granted because Nasdaq&#8217;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&#160;139(1)&#160;of the Canada Business Corporations Act provides that a company&#8217;s by-laws may set the quorum requirements for a meeting of shareholders. The relevant provisions of the Registrant&#8217;s by-laws state that &#8220;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 20 percent of the issued and outstanding shares of
        the Corporation for the time being enjoying voting rights </div>
      <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
        <div id="DSPFPageBreak" style="page-break-after: always;">
          <hr style="border-width: 0px; clear: both; margin: 4px 0px; width: 100%; height: 2px; color: #000000; background-color: #000000;" noshade="noshade"></div>
      </div>
      <div style="color: #000000;">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.&#8221;</div>
      <div>&#160;</div>
    </div>
    <div>
      <div style="text-align: center; color: #000000;">UNDERTAKING</div>
      <div>&#160;</div>
    </div>
    <div>
      <div style="color: #000000;">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&#160;40-F arises; or transactions in said securities.</div>
      <div>&#160;</div>
      <div> <br>
      </div>
      <div> <br>
      </div>
      <div> <br>
      </div>
      <div><br>
      </div>
    </div>
    <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" id="DSPFPageBreakArea">
      <div style="page-break-after:always;" id="DSPFPageBreak">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div>
      <div style="text-align: center; color: #000000;">SIGNATURES</div>
      <div>&#160;<br>
      </div>
    </div>
    <div>
      <div style="color: #000000;">Pursuant to the requirements of the Exchange Act, the Registrant certifies that it meets all of the requirements for filing on Form&#160;40-F and has duly caused this annual report to be signed on its behalf by the
        undersigned, thereto duly authorized.</div>
      <div>&#160;</div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" id="zd3b55b3d0f274c1a948565fcab851b5d" cellpadding="0" cellspacing="0">

        <tr>
          <td colspan="2" style="width: 100%; vertical-align: top;">
            <div style="color: #000000;">THE DESCARTES SYSTEMS GROUP INC.</div>
          </td>
        </tr>
        <tr>
          <td colspan="2" style="width: 100%; vertical-align: top;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 10.04%; vertical-align: top;">
            <div style="color: #000000;">By:</div>
          </td>
          <td style="width: 89.96%; vertical-align: top; border-bottom: #000000 1px solid;">
            <div style="color: #000000;">/s/ Michael Verhoeve</div>
          </td>
        </tr>
        <tr>
          <td style="width: 10.04%; vertical-align: top;">
            <div style="color: #000000;">Name:</div>
          </td>
          <td style="width: 89.96%; vertical-align: top;">
            <div style="color: #000000;">Michael Verhoeve</div>
          </td>
        </tr>
        <tr>
          <td style="width: 10.04%; vertical-align: top;">
            <div style="color: #000000;">Title:</div>
          </td>
          <td style="width: 89.96%; vertical-align: top;">
            <div style="color: #000000;">EVP Legal, General Counsel and Corporate<br>
              Secretary</div>
          </td>
        </tr>
        <tr>
          <td style="width: 10.04%; vertical-align: top;">&#160;</td>
          <td style="width: 89.96%; vertical-align: top;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 10.04%; vertical-align: top;">
            <div style="color: #000000;">Date:</div>
          </td>
          <td style="width: 89.96%; vertical-align: top;">
            <div style="color: #000000;">&#160;April 7, 2021</div>
          </td>
        </tr>

    </table>
    <div>
      <div><br>
      </div>
      <div>&#160;</div>
      <div><br>
      </div>
      <div>&#160;</div>
      <div><br>
      </div>
    </div>
    <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" id="DSPFPageBreakArea">
      <div style="page-break-after:always;" id="DSPFPageBreak">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div>
      <div style="text-align: center; color: #000000;">EXHIBIT&#160;INDEX</div>
      <div>&#160;</div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" id="z8c728512ae4e44f981c6acc12f1b45a2" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 9.05%; vertical-align: bottom; border-bottom: #000000 1px solid;">
            <div style="color: #000000; font-weight: bold;">Exhibit<br>
              Number</div>
          </td>
          <td style="width: 1.01%; vertical-align: bottom;"><br>
          </td>
          <td style="width: 89.94%; vertical-align: bottom; border-bottom: #000000 1px solid;">
            <div style="text-align: center; color: #000000; font-weight: bold;">Description</div>
          </td>
        </tr>
        <tr>
          <td style="width: 9.05%; vertical-align: top;">
            <div style="color: #0000FF;"><a href="exhibit99-1.htm">99.1</a></div>
          </td>
          <td style="width: 1.01%; vertical-align: bottom;"><br>
          </td>
          <td style="width: 89.94%; vertical-align: top;">
            <div style="color: #0000FF;"><a href="exhibit99-1.htm">Annual Information Form&#160;for the fiscal year ended January&#160;31, 2021</a></div>
          </td>
        </tr>
        <tr>
          <td style="width: 9.05%; vertical-align: top;">&#160;</td>
          <td style="width: 1.01%; vertical-align: bottom;"><br>
          </td>
          <td style="width: 89.94%; vertical-align: top;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 9.05%; vertical-align: top;">
            <div style="color: #0000FF;"><a href="https://www.sec.gov/Archives/edgar/data/1050140/000092963820000392/exhibit99-2.htm">99.2</a></div>
          </td>
          <td style="width: 1.01%; vertical-align: bottom;"><br>
          </td>
          <td style="width: 89.94%; vertical-align: top;">
            <div style="color: #0000FF;"><a href="https://www.sec.gov/Archives/edgar/data/1050140/000092963820000392/exhibit99-2.htm">2021 Annual Report (incorporated herein by reference to Exhibit&#160;99.2 of the Registrant&#8217;s Form&#160;6-K furnished with the SEC
                on March&#160;4, 2021)</a></div>
          </td>
        </tr>
        <tr>
          <td style="width: 9.05%; vertical-align: top;">&#160;</td>
          <td style="width: 1.01%; vertical-align: bottom;"><br>
          </td>
          <td style="width: 89.94%; vertical-align: top;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 9.05%; vertical-align: top;">
            <div style="color: #0000FF;"><a href="exhibit99-3.htm">99.3</a></div>
          </td>
          <td style="width: 1.01%; vertical-align: bottom;"><br>
          </td>
          <td style="width: 89.94%; vertical-align: top;">
            <div style="color: #0000FF;"><a href="exhibit99-3.htm">Consent of KPMG LLP</a></div>
          </td>
        </tr>
        <tr>
          <td style="width: 9.05%; vertical-align: top;">&#160;</td>
          <td style="width: 1.01%; vertical-align: bottom;"><br>
          </td>
          <td style="width: 89.94%; vertical-align: top;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 9.05%; vertical-align: top;">
            <div style="color: #0000FF;"><a href="exhibit99-4.htm">99.4</a></div>
          </td>
          <td style="width: 1.01%; vertical-align: bottom;"><br>
          </td>
          <td style="width: 89.94%; vertical-align: top;">
            <div style="color: #0000FF;"><a href="exhibit99-4.htm">Certification of the Chief Executive Officer pursuant to Rule&#160;13a-14 or 15d-14 of the Securities Exchange Act of 1934, as
                adopted pursuant to Section&#160;302 of the Sarbanes-Oxley Act of 2002</a></div>
          </td>
        </tr>
        <tr>
          <td style="width: 9.05%; vertical-align: top;">&#160;</td>
          <td style="width: 1.01%; vertical-align: bottom;"><br>
          </td>
          <td style="width: 89.94%; vertical-align: top;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 9.05%; vertical-align: top;">
            <div style="color: #0000FF;"><a href="exhibit99-5.htm">99.5</a></div>
          </td>
          <td style="width: 1.01%; vertical-align: bottom;"><br>
          </td>
          <td style="width: 89.94%; vertical-align: top;">
            <div style="color: #0000FF;"><a href="exhibit99-5.htm">Certification of the Chief Financial Officer pursuant to Rule&#160;13a-14 or 15d-14 of the Securities Exchange Act of 1934, as
                adopted pursuant to Section&#160;302 of the Sarbanes-Oxley Act of 2002</a></div>
          </td>
        </tr>
        <tr>
          <td style="width: 9.05%; vertical-align: top;">&#160;</td>
          <td style="width: 1.01%; vertical-align: bottom;"><br>
          </td>
          <td style="width: 89.94%; vertical-align: top;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 9.05%; vertical-align: top;">
            <div style="color: #0000FF;"><a href="exhibit99-6.htm">99.6</a></div>
          </td>
          <td style="width: 1.01%; vertical-align: bottom;"><br>
          </td>
          <td style="width: 89.94%; vertical-align: top;">
            <div style="color: #0000FF;"><a href="exhibit99-6.htm">Certifications of the Chief Executive Officer and Chief Financial Officer pursuant to 18 U.S.C. Section&#160;1350, as adopted
                pursuant to Section&#160;906 of the Sarbanes-Oxley Act of 2002</a></div>
          </td>
        </tr>
        <tr>
          <td style="width: 9.05%; vertical-align: top;">&#160;</td>
          <td style="width: 1.01%; vertical-align: bottom;"><br>
          </td>
          <td style="width: 89.94%; vertical-align: top;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 9.05%; vertical-align: top;">
            <div style="color: #000000;"><a href="dsgx-20210131.xml">101</a></div>
          </td>
          <td style="width: 1.01%; vertical-align: bottom;"><br>
          </td>
          <td style="width: 89.94%; vertical-align: top;">
            <div style="color: #000000;"><a href="dsgx-20210131.xml">XBRL Financial Statements</a></div>
          </td>
        </tr>

    </table>
    <div>
      <div><br>
      </div>
      <div>&#160;</div>
      <div><br>
      </div>
      <div>&#160;</div>
      <div>&#160;</div>
      <div><br>
      </div>
      <div>&#160;</div>
      <div>&#160;</div>
    </div>
  </div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-99.1
<SEQUENCE>2
<FILENAME>exhibit99-1.htm
<DESCRIPTION>ANNUAL INFORMATION FORM FOR THE FISCAL YEAR ENDED JANUARY 31, 2021
<TEXT>
<html>
  <head>
    <title></title>
    <!-- Licensed to: morganlewis
         Document created using EDGARfilings PROfile 7.4.0.0
         Copyright 1995 - 2021 Broadridge -->
  </head>
<body style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000;" bgcolor="#ffffff">
  <div>
    <div style="text-align: right;"><font style="font-weight: bold;">Exhibit 99.1</font><br>
    </div>
    <div><br>
      <br>
    </div>
    <div><br>
    </div>
    <div><br>
    </div>
    <div><br>
    </div>
    <div><img src="descartes_logobw.gif"></div>
    <div><br>
    </div>
    <div><br>
    </div>
    <br>
    <div><br>
    </div>
    <div style="text-align: right; text-indent: 0pt; margin-left: 67.5pt; color: #FFFFFF; font-size: 14pt; font-variant: small-caps; font-weight: bold;">The Descartes Systems Group Inc.</div>
    <div style="text-align: right; color: #FFFFFF; font-variant: small-caps; font-weight: bold;">Annual Information Form</div>
    <div><img src="annualinfo.gif"></div>
    <div><br>
    </div>
    <div><br>
    </div>
    <div><br>
    </div>
    <div><br>
    </div>
    <div><br>
    </div>
    <div><br>
    </div>
    <div><br>
    </div>
    <div><br>
    </div>
    <div><br>
    </div>
    <div><br>
    </div>
    <div><br>
    </div>
    <div><br>
    </div>
    <div style="text-align: right; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps; font-weight: bold;">APRIL 7th, 2021</div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <!--PROfilePageNumberReset%Num%2%%%-->
    <div>
      <div style="margin-right: 216pt; font-variant: small-caps; font-weight: bold;">
        <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; color: #000000; width: 70%;" id="z177aedb008264d6eb54e5df9529a5de7" border="0" cellpadding="0" cellspacing="0">

            <tr>
              <td style="border-bottom: 1px solid #000000; border-top: 1px solid #000000; width: 70%; font-family: Verdana, Geneva, 'sans-serif'; font-variant: small-caps; font-weight: bold;">
                <div style="margin: 3px 0px;">Table of Contents</div>
              </td>
            </tr>

        </table>
        <br>
      </div>
    </div>
    <table id="z29a825d62d66424bab661ea20b06a296" style="font-family: 'Times New Roman',Times,serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: rgb(0, 0, 0);" border="0" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold; font-variant: small-caps;">ITEM 1</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold; font-variant: small-caps;">GENERAL</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold; font-variant: small-caps;">3</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">&#160;</td>
          <td style="vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">&#160;</td>
          <td style="width: 50pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps; text-align: right;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold; font-variant: small-caps;">ITEM 2</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold; font-variant: small-caps;">CORPORATE STRUCTURE</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold; font-variant: small-caps;">4</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">2.1</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: normal;">The Company</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">4</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">2.2</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: normal;">Intercorporate Relationships</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">4</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">&#160;</td>
          <td style="vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">&#160;</td>
          <td style="width: 50pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps; text-align: right;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold; font-variant: small-caps;">ITEM 3</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold; font-variant: small-caps;">GENERAL DEVELOPMENT OF THE BUSINESS</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold; font-variant: small-caps;">5</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">3.1</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: normal;">Profile</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">5</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">3.2</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: normal;">History and General Development</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">7</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">3.3</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: normal;">Trends / Business Outlook</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">10</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">&#160;</td>
          <td style="vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">&#160;</td>
          <td style="width: 50pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps; text-align: right;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold; font-variant: small-caps;">ITEM 4</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold; font-variant: small-caps;">NARRATIVE DESCRIPTION OF THE BUSINESS</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold; font-variant: small-caps;">14</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">4.1</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: normal;">Company Overview</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">14</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">4.2</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: normal;">Principal Products &amp; Services</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">15</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">4.3</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: normal;">Revenue Sources</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">26</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">4.4</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: normal;">Customer Base</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">26</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">4.5</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: normal;">Sales and Marketing</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">27</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">4.6</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: normal;">Research and Development</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">28</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">4.7</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: normal;">Competition</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">29</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">4.8</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: normal;">Intellectual Property and Other Proprietary Rights</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">29</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">4.9</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: normal;">Contracts</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">30</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">4.10</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: normal;">Employees</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">31</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">4.11</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: normal;">Risks Associated with Foreign Sales and Exchange Rate Fluctuations</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">31</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">4.12</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: normal;">Risks Associated with Cyclical or Seasonal Aspects of Business</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">32</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">4.13</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: normal;">Reorganizations</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">32</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">4.14</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: normal;">Material Contracts</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">32</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">4.15</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: normal;">Code of Business Conduct and Ethics</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">32</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">&#160;</td>
          <td style="vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">&#160;</td>
          <td style="width: 50pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps; text-align: right;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold; font-variant: small-caps;">ITEM 5</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold; font-variant: small-caps;">RISK FACTORS</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold; font-variant: small-caps;">33</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">&#160;</td>
          <td style="vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">&#160;</td>
          <td style="width: 50pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps; text-align: right;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold; font-variant: small-caps;">ITEM 6</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold; font-variant: small-caps;">MARKET FOR SECURITIES AND RELATED SECURITYHOLDER MATTERS</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold; font-variant: small-caps;">34</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">6.1</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: normal;">Common Shares</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">34</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">6.2</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: normal;">Transfer Agent and Registrar</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">34</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">6.3</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: normal;">Dividend Policy</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">34</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">6.4</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: normal;">Market for Common Shares</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">35</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">6.5</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: normal;">Shareholder Rights Plan</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">35</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">&#160;</td>
          <td style="vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">&#160;</td>
          <td style="width: 50pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps; text-align: right;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold; font-variant: small-caps;">ITEM 7</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold; font-variant: small-caps;">DIRECTORS AND EXECUTIVE OFFICERS</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold; font-variant: small-caps;">36</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">7.1</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: normal;">Summary Information</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">36</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">7.2</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: normal;">Committees of the Board of Directors</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; margin-left: 17.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">40</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">&#160;</td>
          <td style="vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">&#160;</td>
          <td style="width: 50pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps; text-align: right;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold; font-variant: small-caps;">ITEM 8</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold; font-variant: small-caps;">EXTERNAL AUDITORS</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold; font-variant: small-caps;">42</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">&#160;</td>
          <td style="vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">&#160;</td>
          <td style="width: 50pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps; text-align: right;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold; font-variant: small-caps;">ITEM 9</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold; font-variant: small-caps;">LEGAL PROCEEDINGS</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold; font-variant: small-caps;">42</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">&#160;</td>
          <td style="vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">&#160;</td>
          <td style="width: 50pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps; text-align: right;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold; font-variant: small-caps;">ITEM 10</div>
          </td>
          <td style="vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold; font-variant: small-caps;">ADDITIONAL INFORMATION</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold; font-variant: small-caps;">42</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">&#160;</td>
          <td style="vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">&#160;</td>
          <td style="width: 50pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps; text-align: right;">&#160;</td>
        </tr>
        <tr>
          <td style="vertical-align: top; font-variant: normal;" colspan="2">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold;">Appendix A &#8211; Audit Committee Charter</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold; font-variant: small-caps;">43</div>
          </td>
        </tr>
        <tr>
          <td style="width: 50pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">&#160;</td>
          <td style="vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps;">&#160;</td>
          <td style="width: 50pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-variant: small-caps; text-align: right;">&#160;</td>
        </tr>
        <tr>
          <td style="vertical-align: top; font-variant: normal;" colspan="2">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold;">Appendix B &#8211; Audit Committee Pre-Approval Policy</div>
          </td>
          <td style="width: 50pt; vertical-align: top;">
            <div style="text-align: right; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold; font-variant: small-caps;">56</div>
          </td>
        </tr>

    </table>
    <div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
        <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">2</font></div>
        <div id="DSPFPageBreak" style="page-break-after:always;">
          <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
      </div>
    </div>
    <table id="z73ce22ecd2b2465e9e54d663edd71475" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 27.48%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 9pt; font-weight: bold; font-variant: small-caps;">ITEM 1</div>
          </td>
          <td style="width: 72.52%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 9pt; font-weight: bold; font-variant: small-caps;">GENERAL</div>
          </td>
        </tr>

    </table>
    <div><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold;">Information contained herein is provided as at January 31, 2021 and is in United States (&#8220;US&#8221;) dollars, unless otherwise indicated.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Our Annual Information Form (&#8220;AIF&#8221;) contains references to The Descartes Systems Group Inc. using the words &#8220;Descartes,&#8221; &#8220;we,&#8221; &#8220;us,&#8221; &#8220;our&#8221; and similar words and
      the reader is referred to using the words &#8220;you,&#8221; &#8220;your&#8221; and similar words.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">This AIF also refers to our fiscal years. Our fiscal year commences on February 1<sup style="vertical-align: text-top; line-height: 1; font-size: smaller;">st</sup>
      of each year and ends on January 31<sup style="vertical-align: text-top; line-height: 1; font-size: smaller;">st</sup> of the following year. Our fiscal year that ended on January 31, 2021 is referred to as &#8220;fiscal 2021,&#8221; &#8220;2021&#8221; or using similar
      words. Our fiscal year that ended on January 31, 2020 is referred to as &#8220;fiscal 2020,&#8221; &#8220;2020&#8221; or using similar words. Other fiscal periods are referenced by the applicable year during which the fiscal period ends. For example, 2022 refers to the
      annual period ending January 31, 2022 and the &#8220;fourth quarter of 2021&#8221; refers to the quarter ending January 31, 2021.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">You should read the AIF in conjunction with our audited consolidated financial statements for 2021 and the management&#8217;s discussion and analysis thereon
      (&#8220;MD&amp;A&#8221;). We prepare and file our consolidated financial statements and MD&amp;A in US dollars and in accordance with US generally accepted accounting principles (&#8220;GAAP&#8221;).</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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 &#8220;Continuous Disclosure Obligations&#8221; (&#8220;NI 51-102&#8221;) of the Canadian Securities Administrators.</div>
    <div style="text-align: justify;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
      </font></div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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 (&#8220;forward looking statements&#8221;), including, but not limited to: statements in the &#8220;Trends / Business Outlook&#8221; section and statements regarding our expectations concerning future revenues and earnings, including potential variances from period to
      period; our expectations regarding the cyclical nature of our business; mix of revenues and potential variances from period to period; our assessment of the current and future potential impact of the current global pandemic being experienced in
      respect of the Covid-19 virus (the &#8220;Pandemic&#8221;) and related public health protection measures on our business, results of operations and financial condition; 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 &#8220;Commitments, Contingencies and Guarantees&#8221; 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 &#8220;believe,&#8221; &#8220;plan,&#8221; &#8220;expect,&#8221; &#8220;anticipate,&#8221; &#8220;intend,&#8221; &#8220;continue,&#8221; &#8220;may,&#8221; &#8220;will,&#8221; &#8220;should&#8221; 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&#8217; ability to avoid the impact of network failures, information</div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> <br>
    </div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">3</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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 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; Descartes' ability to successfully identify
      and execute on acquisitions and to integrate acquired businesses and assets, and to predict expenses associated with and revenues from acquisitions; 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.&#160; Such factors include, but are not limited to, the factors discussed under the
      heading <font style="font-weight: bold;">&#8220;Certain Factors That May Affect Future Results&#8221;</font> in the MD&amp;A which is included in our Annual Report to the Shareholders for the fiscal year ended January 31<sup style="vertical-align: text-top; line-height: 1; font-size: smaller;">st</sup>, 2021, 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&#8217;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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
      <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 27.48%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);">
              <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 9pt; font-weight: bold; font-variant: small-caps;">ITEM 2<br>
              </div>
            </td>
            <td style="width: 72.52%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);">
              <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 9pt; font-weight: bold; font-variant: small-caps;">CORPORATE STRUCTURE</div>
            </td>
          </tr>

      </table>
    </div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;</div>
    <div style="text-align: justify;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold;">2.1</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<font style="font-weight: bold;">The




          Company</font></font></div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;</div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Descartes was continued under the <font style="font-style: italic;">Canada Business Corporations Act</font> on July 5, 2006. On July 31, 2006, Descartes was
      amalgamated under the <font style="font-style: italic;">Canada Business Corporations Act</font> pursuant to an amalgamation between Descartes and ViaSafe Inc. On February 1, 2010, Descartes was amalgamated under the <font style="font-style: italic;">Canada Business Corporations Act</font> pursuant to an amalgamation between Descartes and Scancode Systems Inc. (&#8220;Scancode&#8221;). On February 1, 2010, Descartes was amalgamated under the <font style="font-style: italic;">Canada Business
        Corporations Act</font> pursuant to an amalgamation between Descartes and 7322267 Canada Inc. On February 1, 2012, Descartes was amalgamated under the <font style="font-style: italic;">Canada Business Corporations Act</font> pursuant to an
      amalgamation between Descartes and 882976 Ontario Inc.&#160; On March 31, 2021, Descartes was amalgamated under the <font style="font-style: italic;">Canada Business Corporations Act</font> pursuant to an amalgamation between Descartes and PinPoint GPS
      Solutions Inc..</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;</div>
    <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold;">2.2</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<font style="font-weight: bold;">Intercorporate Relationships</font></font></div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;</div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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, 2021, are as follows:</div>
    <div><br>
    </div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">4</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <table id="z478d134d744649d2ad413c54d72a2e2b" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 18pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
          </td>
          <td style="width: 18pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#8226;</td>
          <td style="width: auto; vertical-align: top; text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div>PinPoint GPS Solutions Inc., a Canadian subsidiary (Note: subsequent to January 31, 2021, this subsidiary was amalgamated with Descartes as described above);</div>
          </td>
        </tr>

    </table>
    <table id="z9ca5375f164049bd925d75904ca94bc3" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 18pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
          </td>
          <td style="width: 18pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#8226;</td>
          <td style="width: auto; vertical-align: top; text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div>Descartes Visual Compliance Inc., a Canadian subsidiary;</div>
          </td>
        </tr>

    </table>
    <table id="ze77c7cef3181495fb88a650c4e0bd2b0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 18pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
          </td>
          <td style="width: 18pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#8226;</td>
          <td style="width: auto; vertical-align: top; text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div>12268761 Canada Inc., a Canadian subsidiary;</div>
          </td>
        </tr>

    </table>
    <table id="z41cd97c78cfa43d492b7ab50f81edf28" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 18pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
          </td>
          <td style="width: 18pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#8226;</td>
          <td style="width: auto; vertical-align: top; text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div>Descartes U.S. Holdings, Inc., a Delaware subsidiary;</div>
          </td>
        </tr>

    </table>
    <table id="zf39b3504920b4352afe353b418e31bd0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 18pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
          </td>
          <td style="width: 18pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#8226;</td>
          <td style="width: auto; vertical-align: top; text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div>Descartes Systems (USA) LLC, a Delaware subsidiary;</div>
          </td>
        </tr>

    </table>
    <table id="zaa538ec2d5184a62bcf680ad55fca8b1" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 18pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
          </td>
          <td style="width: 18pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#8226;</td>
          <td style="width: auto; vertical-align: top; text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div>MacroPoint, LLC, an Ohio subsidiary;</div>
          </td>
        </tr>

    </table>
    <table id="zd7ada9d01f3d4ce3bc25f06ba85efcd7" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 18pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
          </td>
          <td style="width: 18pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#8226;</td>
          <td style="width: auto; vertical-align: top; text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div>Descartes Visual Compliance (USA) LLC, a Delaware subsidiary;</div>
          </td>
        </tr>

    </table>
    <table id="z543e39a68a8241308f931d9a86db19f4" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 18pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
          </td>
          <td style="width: 18pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#8226;</td>
          <td style="width: auto; vertical-align: top; text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div>Descartes Systems UK Limited, a United Kingdom subsidiary;</div>
          </td>
        </tr>

    </table>
    <table id="zfac6b6d3351f461ab91f94b2ba801d5c" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 18pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
          </td>
          <td style="width: 18pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#8226;</td>
          <td style="width: auto; vertical-align: top; text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div>InterCommIT BV, a Netherlands subsidiary; and</div>
          </td>
        </tr>

    </table>
    <table id="zba23ce922c9545c1989ca4fbfff6ca82" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 18pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
          </td>
          <td style="width: 18pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#8226;</td>
          <td style="width: auto; vertical-align: top; text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div>Descartes Systems (Belgium) NV, a Belgian subsidiary.</div>
          </td>
        </tr>

    </table>
    <div><br>
    </div>
    <div>
      <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 27.48%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);">
              <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 9pt; font-weight: bold; font-variant: small-caps;">ITEM 3<br>
              </div>
            </td>
            <td style="width: 72.52%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);">
              <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 9pt; font-weight: bold; font-variant: small-caps;"><font style="font-weight: bold;">GENERAL DEVELOPMENT OF THE</font><font style="font-weight: bold;"> BUSINESS</font></div>
            </td>
          </tr>

      </table>
    </div>
    <br>
    <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold;">3.1</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<font style="font-weight: bold;">Profile</font></font></div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">The Market</div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Logistics is the management of the flow of resources between a point of origin and a point of destination &#8211; 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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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&#8217; global supply chains and a lack of standardized business processes.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div><br>
    </div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">5</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">The rise of ecommerce has heightened these challenges for many suppliers with end-customers increasingly demanding narrower order-to-fulfillment periods, lower
      prices and greater flexibility in scheduling and rescheduling deliveries. End-customers also want real-time updates on delivery status, adding considerable burden to supply chain management as process efficiency is balanced with affordable service.</div>
    <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">As the market continues to change, we have been evolving to meet our customers&#8217; 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 (&#8220;GLN&#8221;) 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 &#8211; 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.</div>
    <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Solutions</div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Descartes&#8217; 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.</div>
    <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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&#8217;s multimodal logistics
      community to enable companies to quickly and cost-effectively connect and collaborate.</div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> <br>
    </div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">6</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Descartes&#8217; 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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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 &#8220;low tech&#8221; partners to act and
      respond with &#8220;high tech&#8221; 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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Descartes offers a wide array of modular, cloud-based, interoperable web and wireless supply chain and logistics management applications. These solutions embody
      Descartes&#8217; deep domain expertise, not merely &#8220;check box&#8221; 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&#8217; comprehensive suite of solutions includes:</div>
    <table id="z92fba6dc25644b12a6d7030d519c249f" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 18pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
          </td>
          <td style="width: 18pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#8226;</td>
          <td style="width: auto; vertical-align: top; text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div>Routing, Mobile and Telematics;</div>
          </td>
        </tr>

    </table>
    <table id="z922e9e5f49da42d7b6c716dbcae6e8f6" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 18pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
          </td>
          <td style="width: 18pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#8226;</td>
          <td style="width: auto; vertical-align: top; text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div>Transportation Management;</div>
          </td>
        </tr>

    </table>
    <table id="z4d66297a9d0b4de9b73a79d7700bac7d" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 18pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
          </td>
          <td style="width: 18pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#8226;</td>
          <td style="width: auto; vertical-align: top; text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div>Ecommerce Shipping and Fulfillment;</div>
          </td>
        </tr>

    </table>
    <table id="z9c7503dea03444ff93e08742c02f3d0b" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 18pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
          </td>
          <td style="width: 18pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#8226;</td>
          <td style="width: auto; vertical-align: top; text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div>Customs &amp; Regulatory Compliance;</div>
          </td>
        </tr>

    </table>
    <table id="z295406bd16324618a2a60d6ec02203ae" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 18pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
          </td>
          <td style="width: 18pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#8226;</td>
          <td style="width: auto; vertical-align: top; text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div>Global Trade Intelligence;</div>
          </td>
        </tr>

    </table>
    <table id="zd4d1548049be4bcf9b11329d1dcbadd9" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 18pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
          </td>
          <td style="width: 18pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#8226;</td>
          <td style="width: auto; vertical-align: top; text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div>Global Logistics Network Services; and</div>
          </td>
        </tr>

    </table>
    <table id="zdd61b9edbe3d4ad4945949986dd15fcf" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 18pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
          </td>
          <td style="width: 18pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#8226;</td>
          <td style="width: auto; vertical-align: top; text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div>Broker &amp; Forwarder Enterprise Systems.</div>
          </td>
        </tr>

    </table>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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&#8217;
      solutions are designed to deliver functionality that can enhance a logistics operation&#8217;s performance and productivity both within the organization and across a complex network of partners.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Descartes&#8217; 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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Descartes&#8217; 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&#8217; 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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;</div>
    <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold;">3.2</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<font style="font-weight: bold;">History and General Development</font></font></div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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</div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> <br>
    </div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">7</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Key developments in our business over the last three fiscal years, described beginning with the most recent, are as follows:</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Fiscal 2021 and Part of Fiscal 2022 through to April 7th, 2021</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">On March 1, 2021, we announced the acquisition of Vitadex Solutoins LLC dba QuestaWeb (&#8220;QuestaWeb&#8221;) a leading provider of foreign trade zone (&#8220;FTZ&#8221;) and customs
      compliance solutions based in New Jersey, USA.&#160;&#160; QuestaWeb&#8217;s solutions allow logistics service providers and importers to automate processes related to US Customs and Border Protection (&#8220;CBP&#8221;) 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 US$36 million satisfied from cash on-hand.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">On November 6, 2020, we acquired ShipTrack Inc. (&#8220;ShipTrack&#8221;) a leading provider of ecommerce final mile solutions based in Ottawa, Canada.&#160; ShipTrack&#8217;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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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 US$1 billion.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">On June 10, 2020, we acquired Cracking Logistics Limited dba Kontainers (&#8220;Kontainers&#8221;) a leading provider of client-facing digital freight execution platforms
      based in the United Kingdom. Kontainers&#8217; 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 US$5.2 million, net of cash acquired, which was funded from cash on-hand, plus potential performance-based consideration of up to an additional US$6 million over the next two fiscal years.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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;&#160; David Beatson retired from our Board of Directors at that time.</div>
    <div style="text-align: justify;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
      </font></div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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</div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> <br>
    </div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">8</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">various periods of time following this development due to government-ordered or recommended shut-downs and/or &#8220;shelter-in-place&#8221;, 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 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;&#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.</div>
    <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">On February 21, 2020, we acquired Peoplevox Limited (&#8220;Peoplevox&#8221;) a leading provider of cloud-based ecommerce warehouse management solutions (&#8220;eWMS&#8221;) based in
      London, England. Peoplevox&#8217;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 US$24.1 million, net of cash acquired, satisfied from a combination of cash on-hand and Descartes&#8217; existing acquisition line of
      credit.</div>
    <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Fiscal 2020</div>
    <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">On August 20, 2019, we acquired BestTransport.com Inc. (&#8220;BestTransport&#8221;), 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&#8217;
      visibility solutions and capacity matching solutions. The total purchase price for the acquisition was approximately US$11.2 million, net of working capital acquired, which was funded from Descartes&#8217; existing acquisition line of credit.</div>
    <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">On June 27, 2019, we acquired a group of companies comprising the business of STEPcom (&#8220;STEPcom&#8221;), a leading European business-to-business (&#8220;B2B&#8221;) 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 US$19.6
      million which was funded from Descartes&#8217; existing acquisition line of credit.</div>
    <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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 &#8220;Fiscal 2019&#8221; 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 $244,950,000.</div>
    <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">On May 10, 2019, we acquired Core Transport Technologies NZ Limited (&#8220;Core&#8221;), 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&#8217; previous
      acquisition of Velocity Mail. The total up-front purchase price for the acquisition was approximately US$21 million, which was funded from Descartes existing acquisition line of credit, plus potential performance-based consideration of up to an
      additional US$9 million over the next two fiscal years.</div>
    <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">On February 12, 2019, we acquired the businesses run by the Management Systems Resources Inc. group of companies operating under the names &#8220;Visual Compliance&#8221;,
      &#8220;eCustoms&#8221; and &#8220;MSR&#8221; (collectively, &#8220;Visual Compliance&#8221;) pursuant to a Purchase and Sale Agreement (the &#8220;Purchase Agreement&#8221;) entered into on January 27, 2019 with MSR Customs &amp; Commodity Tax Group, Management Systems Resources Inc, MSR
      International Inc. and MSR Customs Corporation (collectively, the &#8220;Sellers&#8221;). 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</div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> <br>
    </div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">9</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">million paid in cash, primarily drawn from our amended and restated revolving credit facility as referenced below. 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.</div>
    <div><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Fiscal 2019</div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">On January 28, 2019, we announced that we had amended and increased our existing US $150 million senior secured revolving credit facility to a US $350 million
      revolving operating credit facility pursuant to the Third Amended and Restated Credit Agreement dated as of January 25, 2019 among <font style="font-style: italic;">inter alia</font> Descartes and certain parties advising Bank of Montreal (&#8220;BMO&#8221;) as
      Arranger, Sole Bookrunner and Administrative Agent (the &#8220;Credit Facility&#8221;), with BMO acting as sole lead and arranger for the increased credit facility. The Credit Facility is available for general corporate purposes, including the financing of
      ongoing working capital needs and acquisitions, including the Visual Compliance transaction. 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&#8217; assets.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">On August 21, 2018, we acquired PinPoint GPS Solutions, Inc. (&#8220;PinPoint&#8221;), a Toronto, Ontario based provider of fleet-tracking and mobile-workforce solutions.
      PinPoint is primarily a reseller of technology solutions that gather real-time location and performance information on trucks and other mobile assets, which information can be used in several other Descartes applications. The total up-front purchase
      price for the acquisition was approximately CAD $15 million, which was satisfied from a combination of cash on-hand and CAD $2 million in common shares of Descartes, plus potential performance-based consideration of up to an additional CAD $3
      million.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">On June 22, 2018, we acquired substantially all of the assets of Velocity Mail, LLC (&#8220;Velocity Mail&#8221;). Velocity Mail is a US-based operator of an electronic
      transportation network that provides global air carriers with mail and parcel shipment scanning and tracking solutions. The Velocity Mail acquisition added to the breadth of solutions that Descartes can offer to its global air carrier customers and
      prospects over the Descartes GLN. The total purchase price for the acquisition was approximately $25.5 million, which was satisfied from cash on-hand.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">On June 6, 2018, 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 was limited to $750 million,
      of which $245 million has been used as of the date of this AIF leaving a remaining balance of $505 million.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">On February 2, 2018, we acquired Aljex Software, Inc. (&#8220;Aljex&#8221;), a leading US-based provider of cloud based back-office transportation management solutions for
      freight brokers and transportation providers. Aljex serves approximately 400 customers in North America and supports the execution of nearly 3 million freight moves per year. The Aljex solution helps customers automate business processes and create
      electronic documents used in executing freight movements. The solution allows customers to manage the lifecycle of a shipment from order creation through execution. The total purchase price for the acquisition was approximately $32.4 million, net of
      cash acquired, which was funded from Descartes&#8217; then-existing acquisition line of credit.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold;">3.3</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<font style="font-weight: bold;">Trends / Business Outlook</font></font></div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Please see our discussion elsewhere in this document related to the current Pandemic and the potential impact of the Pandemic on both short-term and longer-term
      prospects of our business and industry.</div>
    <div><br>
    </div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">10</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Industry consolidation, rapid technological change and frequent new product introductions and enhancements continue to characterize the software, content and
      network services industries &#8211; 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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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 (&#8220;MRM&#8221;) 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, routing and scheduling, purchase order to dock door processes, ecommerce
      fulfilment, warehouse management and inventory visibility. Further, customers are increasingly seeking &#8220;big data&#8221; content and insight solutions for analyzing global logistics trends and activity.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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
      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 United Kingdom and the European Union. In addition, the
      United Kingdom implemented a system for electronic filings on imports and exports. While they are currently operating under a period of voluntary compliance, the United Kingdom is expected to move into a period of mandatory compliance in the latter
      half of calendar 2021. 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 have a positive impact on our revenues in fiscal
      2022 if the filing volumes increase.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold;"><u>TRENDS IN GLOBAL TRADE</u></div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">The ongoing impact of the current Pandemic on global trade both in the short-term and over the longer-term is uncertain at this time.&#160; Through the first half of
      fiscal 2021 we observed some reduced shipment volumes across various modes of transportation and became aware of some customers who had reduced or temporarily suspended operations or were otherwise experiencing financial hardship as a result of the
      Pandemic. Although we observed a return to historical shipment volumes on our networks during the balance of fiscal 2021, we can not be certain what impact the Pandemic may continue to have on overall global trade volumes and the use of Descartes&#8217;
      products and services by its customers and whether any impact will only be temporary or may continue for an extended period of time. It&#8217;s also not clear at this time whether, as a result of the Pandemic, countries, 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.</div>
    <div><br>
    </div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">11</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">With both global trade and counter-terrorism efforts on the rise over the past several years, the role of many customs agencies around the world has evolved far
      beyond statistical reporting and collection of import duties and excise taxes to a growing focus on the protection of society through augmented border security and much deeper cargo security. To that end, the World Customs Organization (&#8220;WCO&#8221;) is
      playing a leading role in helping member agencies enhance the efficiency and effectiveness of their operations through the development, promotion and implementation of modern customs systems and procedures. One of the WCO&#8217;s principal instruments is
      the SAFE Framework of Standards to Secure and Facilitate Global Trade (&#8220;SAFE Framework&#8221;) which the WCO adopted in 2005.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">The SAFE Framework is a non-binding instrument that contains supply chain security and facilitation standards for goods being traded internationally. Its goal
      is to enable better visibility, improve capabilities to detect high-risk shipments, and facilitate more integrated supply chain management across all modes of transport through enhanced technology and data transmission practices, networking
      arrangements between customs administrations, and better cooperation between customs and the business community.</div>
    <div style="text-align: justify;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
      </font></div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">As more countries adopt and enhance SAFE Framework initiatives, importers, exporters and their trading partners must comply with new and stricter security and
      customs regulations, which often mandate the use of electronic logistics messaging. Descartes&#8217; 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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold;">USA: </font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">The Automated Commercial Environment
        (&#8220;ACE&#8221;) was designed by CBP to enhance US national security through more accurate, readily available data to promote seamless trade processing. ACE is the &#8220;single window&#8221; or the primary system through which the trade community will electronically
        report all imports and exports and the government will determine admissibility and duties. In February 2018, CBP deployed the last of the major scheduled core ACE deployments.&#160; The import manifest, cargo release, post release, export, and
        Participating Government Agency (&#8220;PGA&#8221;) integration functionality scheduled for delivery in ACE has been made available. CBP is continuing to work through ongoing demand for additional ACE enhancements emerging from industry, government agency, and
        congressional stakeholders.</font></div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">One such initiative is export manifest that CBP is developing for air, rail, ocean and truck transportation modes. These export manifest functionalities are
      scheduled to be rolled out as pilot programs pending publication of Federal Regulation Notices (&#8220;FRNs&#8221;) announcing the pilot programs by transportation modes and allowing for electronic filing of export manifests. CBP&#8217;s stated goal of this initiative
      is to help close the loop between import and export process and bring more modernized standards to labor-intensive export procedures. CBP also hopes that an electronic export manifest will enable it to better identify potential security concerns
      earlier in the supply chain while speeding the flow of compliant shipments.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">On June 12, 2018, the Air Cargo Advance Screening (&#8220;ACAS&#8221;) program went into effect. It mandates the submission of advanced air cargo information on shipments
      arriving in the United States from a foreign location. Participating air carriers must submit a subset of required pre-arrival air cargo data to CBP at the earliest point practicable and prior to loading the cargo onto aircraft destined to or
      transiting through the United States.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">On September 28, 2019, CBP opened a pilot testing program from ACE Entry Type 86 declarations. This program is designed to provide enhanced declaration
      information for shipments that currently fall under the de minimis value threshold of $800 USD, otherwise known as Section 321 shipments. The goal of the program is to capture enhanced information on duty-free eCommerce shipments for security
      purposes. Descartes is participating in this pilot with customers. The mandatory date for the program is not yet known.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold;">Canada:</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> The Canada Border Services Agency's
        (&#8220;CBSA&#8221;) Single Window Initiative (&#8220;SWI&#8221;) is intended to streamline the sharing of commercial data between the government of Canada and the trade community.</font></div>
    <div style="text-align: justify;"><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> <br>
      </font></div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">12</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">The Advanced Commercial Information (&#8220;ACI&#8221;) electronic manifest (&#8220;e-Manifest&#8221;) program was launched by CBSA to provide more effective risk management processes
      and tools to identify threats to health, safety, and security prior to the arrival of cargo and conveyances in Canada. Compliance requirements extend to air, marine, highway and rail carriers, as well as, freight forwarders and warehouse operators.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Currently, a voluntary compliance period is in effect for ACI e-Manifest for forwarders. Freight forwarders must electronically transmit advance house bill data
      on consolidated freight to the CBSA, which receives and validates the data within time frames that differ by mode. CBSA is providing quarterly releases for eManifest with incremental enhancements.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">The Canadian Export Reporting System (CERS) replaced the Canadian Automated Export Declaration (CAED) with a pilot that began in December 2019. Now fully
      operational, the CERS portal<font style="color: rgb(51, 51, 51);"> enables Canadian exporters to electronically submit export declarations, bulk data uploads and Summary Reporting Program monthly reports to the CBSA.</font></div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">At the end of 2019, CBSA announced the time for the CBSA Assessment and Revenue Management&#160; program. The CBSA Assessment and Revenue Management project is a
      multi-year trade initiative. Once implemented, it will facilitate compliance and enhance the use of data analytics to streamline business processes between CBSA and importers. The multi-year project will transform how the CBSA assesses, collects,
      manages and reports on import revenue and trade information.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold;">European Union: </font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">In 2011, the EU launched
        advance manifest compliance initiatives similar to the US regime, called the Import Control System (&#8220;ICS&#8221;) and Export Control System (&#8220;ECS&#8221;).&#160;Then, in May 2016, updates to the Union Customs Code were launched affecting customs legislation across
        the EU, which introduced significant changes to long-established procedures.</font></div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">The UK left the European Union on January 31, 2020 and the temporary Brexit transition period established to allow goods to flow between the EU and the United
      Kingdom without new customs filings ended on December 31, 2020. While the situation remains fluid, Descartes continues to make the necessary adjustments within our customs applications in the UK and across Europe to support the filing of customs
      declarations and other requirements. One such requirement will be the filing of safety and security declarations for goods moving into the United Kingdom from the EU beginning January 1, 2022.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; color: #000000;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold;">Other Countries Around the World: </font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Many nations have or are in the process of adopting various forms of advance filing requirements for shipments destined for a port of that country, including, Angola, Argentina, Abu Dhabi, Bahrain, Bolivia, Brazil, Colombia, China, Cuba,
        Dubai, Ethiopia, Ghana, India, Israel, Jamaica, Japan, Kenya,&#160;Lebanon, Mexico, New Zealand, Nicaragua, Nigeria, Oman,&#160;Paraguay, and the United Arab Emirates.</font></div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold;"><u>TRENDS IN USE OF GLOBAL TRADE DATA</u></div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Another key trend is the growing importance of global trade data content to minimize duty spend, reduce the risk of transacting with denied parties, and utilize
      market research to better compete. 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. Importers, exporters, and their logistics providers are using global trade data
      to better manage supply chain sourcing and risk, track products, monitor competitors, and discover new market opportunities.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Denied party screening (&#8220;DPS&#8221;) is the review of intellectual property, goods, services, and connectivity prior to an import, export or transaction. Governments
      and international organizations maintain a variety of lists of people, organizations and countries with whom it is illegal or restricted to transact business. Failure to comply can result in significant fines, loss of export privileges, negative
      media coverage and reputational damage. As sanctions policies are in constant flux, many businesses engaged in international trade are increasingly seeking access to affordable, flexible and configurable DPS services to remain in compliance while
      limiting operational disruption.</div>
    <div><br>
    </div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">13</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold;"><u>TRENDS IN MOBILE RESOURCE MANAGEMENT</u></div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">The mobile resource management (&#8220;MRM&#8221;) 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&#8217; 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 looking for solutions that can improve their existing workforce productivity while complying with the increasing number of regulatory mandates.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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&#8217; benefit.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold;"><u>GENERAL TRENDS</u></div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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. In particular, the uncertainties resulting from
      the current Pandemic, or another future pandemic event could adversely impact global shipment volumes in all modes of transportation in fiscal 2022 and potentially beyond.&#160; At the initial outset of the Pandemic we did observe a decline in the global
      shipment volumes in our networks compared to previous periods, particularly in the area of air cargo, however over the course of our fiscal 2021 we have largely seen these global shipment volumes return to our expected historical levels.&#160;&#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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
      <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 27.48%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);">
              <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 9pt; font-weight: bold; font-variant: small-caps;">ITEM 4<br>
              </div>
            </td>
            <td style="width: 72.52%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);">
              <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 9pt; font-weight: bold; font-variant: small-caps;">NARRATIVE DESCRIPTION OF THE BUSINESS</div>
            </td>
          </tr>

      </table>
    </div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;</div>
    <div style="text-align: justify;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold;">4.1</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<font style="font-weight: bold;">Company




          Overview</font></font></div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;</div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify;"><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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<br>
      </font><br>
    </div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">14</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold;">4.2</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<font style="font-weight: bold;">Principal




          Products &amp; Services</font></font></div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold;"><u>Logistics Technology Platform</u></div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Descartes&#8217; Logistics Technology Platform digitally combines the world&#8217;s most expansive logistics network with the industry&#8217;s broadest array of logistics
      management applications and most comprehensive offering of global trade related intelligence. It helps get inventory, information, assets and people where they&#8217;re needed, when they&#8217;re needed.</div>
    <div><br>
    </div>
    <div style="text-align: center;"><img src="p15.jpg"></div>
    <div><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold;">Network</div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">The Descartes Global Logistics Network&#8482; 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.</div>
    <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold;">Intelligence</div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Descartes&#8217; 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.</div>
    <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold;">Innovation</div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold;">Applications</div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div><br>
    </div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">15</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="text-align: justify; margin-right: 4.5pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <table id="z5c00168cc837415b93cce29fd273a9e0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 18pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
          </td>
          <td style="width: 36pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold;">(i)</td>
          <td style="width: auto; vertical-align: top; text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="font-weight: bold;"><u>Routing, Mobile &amp; Telematics</u></div>
          </td>
        </tr>

    </table>
    <div style="text-align: justify; margin-left: 18pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Descartes&#8217; 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 solutions; (5) commercial fleet navigation; (6) reporting and measuring; (7) sales and merchandiser management; and (8) telematics and
      compliance.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold;">(1) &#160;&#160;&#160;&#160;&#160;&#160; <u>Strategic Planning:</u>&#160; <font style="font-style: italic;">Descartes Sales &amp; Territory Planner&#8482; </font>and<font style="font-style: italic;"> Descartes Area Planner&#8482;</font></div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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&#8217;s resilience to
      change. Descartes Area Planner typically is used to generate multiple plans to fit daily, seasonal or business cycle driven demand variability.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; text-indent: -38.15pt; margin-left: 92.15pt;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold;">(2)&#160;&#160;&#160;&#160;&#160;&#160;&#160; </font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold;"><u>Daily Planning:</u></font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold;">&#160; </font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold; font-style: italic;">Descartes Route Planner&#8482;, Descartes Route Planner RS&#8482;,</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;<font style="font-weight: bold; font-style: italic;">Descartes Route Planner On-demand&#8482;</font>&#160;<font style="font-weight: bold;">and</font>&#160;<font style="font-weight: bold; font-style: italic;">Winroute&#8482;</font></font></div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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="vertical-align: text-top; line-height: 1; font-size: smaller;">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&#8217; comprehensive
      offering addresses a broad range of operational environments that can vary across different industries.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; text-indent: -38.15pt; margin-left: 92.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold;">(3)&#160;&#160;&#160;&#160;&#160;&#160;&#160;<u>Pickup/Delivery Reservations:</u><font style="font-style: italic;">&#160; Descartes
        Reservations&#8482;</font></div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Descartes Reservations facilitates on-line scheduling of deliveries or service &#8212; 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.</div>
    <div><br>
    </div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">16</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div style="text-indent: -36pt; margin-left: 90pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold;">(4) &#160;&#160;&#160;&#160;&#160;&#160; <u>Descartes Execution and Mobile Solutions:</u>&#160; <font style="font-style: italic;">Descartes Route Planner
        Dispatch&#8482;, Descartes Route Planner OnDemand Dispatch, Descartes MobileLink&#8482;, Descartes Food Perform&#8482;, Descartes Distribution Perform&#8482;, Descartes Transport Perform&#8482; and Descartes ShipTrack&#8482;</font></div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Descartes Execution solutions (Descartes Route Planner OnDemand Dispatch, Descartes Route Planner Automated Vehicle Locator&#8482;, Descartes Route
      Planner OnDemand AVL&#8482;) 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&#8482;, Descartes Food Perform&#8482;, Descartes Distribution Perform&#8482;, and Descartes Transport Perform&#8482;) 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. The combination of Descartes&#8217; Daily Planning solutions with Descartes Execution and Descartes Mobile solutions form the core of plan versus actual performance evaluation and
      continuous logistics improvement.</div>
    <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Descartes Food Perform, Distribution Perform, and Transport Perform are cloud-based mobile solutions that automate traditional paper-based
      processes and help streamline complex &#8216;last mile&#8217; logistics processes. These solutions have been tailored to support &#8216;last mile&#8217; 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.</div>
    <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
    </div>
    <div style="text-align: justify; margin-left: 54pt; color: rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
    </div>
    <div style="text-align: justify; text-indent: -36pt; margin-left: 90pt;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold;">(6) &#160;&#160;&#160;&#160;&#160;&#160;</font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold;"><u>Reporting and Measuring:</u></font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold;">&#160; </font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold; font-style: italic;">Descartes Analytics</font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> &#8482;</font></div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
    </div>
    <div style="text-indent: -36pt; margin-left: 90pt;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold;">(7)&#160;&#160;&#160;&#160;&#160; </font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold;"><u>Sales




          and Merchandiser Management:</u></font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold;">&#160;</font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold; font-style: italic;">Descartes Sales and Merchandiser Management</font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">&#8482;</font></div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
    </div>
    <div style="text-indent: -36pt; margin-left: 90pt;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold;">(8)&#160;&#160;&#160;&#160;&#160; </font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold;"><u>Telematics




          and Compliance:</u></font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold;">&#160;</font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold; font-style: italic;">Descartes
        Telematics and Compliance&#8482;, Descartes Smartanalysis, Descartes SmartLicence&#8482;, and Descartes</font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">&#160;</font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold; font-style: italic;">Driver Vehicle Inspection Reports&#8482;</font></div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Descartes&#8217; 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</div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> <br>
    </div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">17</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">reporting on driver hours for &#8220;hours of service&#8221; regulatory compliance helps increase workforce productivity and safety, prevents &#8220;hours of
      service&#8221; violations and reduces or eliminates excess paperwork and processing times. Descartes&#8217; 2018 acquisition of PinPoint adds depth, breadth and domain expertise to our offering by enhancing Descartes&#8217; 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).</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">In Europe, Descartes&#8217; 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&#8217;s complex driver working time regulations. Descartes SmartLicence is a comprehensive online tool for fleet operators in the UK for electronically managing driving licenses and
      verifying license details with the UK&#8217;s Driver and Vehicle Licensing Agency.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Descartes&#8217; 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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <table id="zfb5c997c6dca46f09dc14a8488ac3060" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 18pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
          </td>
          <td style="width: 36pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold;">(ii)</td>
          <td style="width: auto; vertical-align: top; text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="font-weight: bold;"><u>Transportation Management</u></div>
          </td>
        </tr>

    </table>
    <div style="text-align: justify; margin-left: 18pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Descartes&#8217; 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&#8217; 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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; text-indent: -36pt; margin-left: 90pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes Transportation Manager&#8482;</div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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: &#8220;How can I effectively use all of my carrier contracts?&#8221;; &#8220;Who is the most suitable carrier in this mode to handle my shipment?&#8221;; &#8220;What shipments can I combine to lower my costs?&#8221;; and, &#8220;What
      shipment consolidation should I use - aggregation, multi-stop routes or pooling to reduce costs while meeting service requirements?&#8221;.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; text-indent: -38.15pt; margin-left: 92.15pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes Dock Appointment Scheduling&#8482;</div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-indent: 18pt; margin-left: 36pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes Yard Management&#8482;</div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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</div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> <br>
    </div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">18</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Transportation Manager, Descartes Yard Management provides command and control of yards of all sizes.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes Rate Builder&#8482;</div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Descartes Rate Builder is a solution that helps carriers and non-vessel owning common carriers (&#8220;NVOCCs&#8221;) manage global rates, contracts and
      rate agreements more efficiently and meet regulatory obligations. Descartes Rate Builder enables companies to create, revise, store and 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 &#8220;contract owner&#8221; 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 (&#8220;LSPs&#8221;) 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;&#160; Descartes Rate Builder also supports the audit of ocean
      bills of lading.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;</div>
    <div style="margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes Retail Distribution&#8482;</div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">The Descartes Retail Distribution portfolio provides visibility, reduces cost and removes bottlenecks as a retailer&#8217;s products move from a
      shipper&#8217;s Distribution Center (&#8220;DC&#8221;), consolidation point, or DC bypass facility through third-party transportation provider networks and ultimately to its stores.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 54pt;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold; font-style: italic;">Descartes Kontainers</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> &#8482;</font></div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Descartes&#8217; 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&#8217;s to integrate to existing rate management and back-office systems.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="margin-left: 54pt; font-weight: bold;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-style: italic;">Descartes MacroPoint</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#8482;</font></div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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 (&#8220;TMS&#8221;) and GPS-enabled smartphone applications.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes MacroPoint&#8482; for Capacity Matching</div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Descartes MacroPoint&#8482; 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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="margin-left: 54pt; font-weight: bold;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-style: italic;">Descartes Aljex</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#8482;</font></div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="margin-left: 54pt; font-weight: bold;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-style: italic;">Descartes BestTransport</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#8482;</font></div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div><br>
    </div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">19</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <table id="zf0dbc08b4f2446dc96f97b2b83137969" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 18pt;"><br>
          </td>
          <td style="width: 54pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold;">(iii)</td>
          <td style="width: auto; vertical-align: top; text-align: justify;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold;"><u>Ecommerce Shipping and Fulfillment</u></div>
          </td>
        </tr>

    </table>
    <div style="text-align: justify; margin-left: 18pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Descartes&#8217; 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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 54pt;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold; font-style: italic;">Descartes OzLink</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#8482;</font></div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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&#8217;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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes pixi eCommerce Fulfillment/ Warehouse Management</div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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&#8217;s financial system
      for invoicing and shipment tracking.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;</div>
    <div style="margin-left: 54pt; font-weight: bold;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-style: italic;">Descartes Peoplevox</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#8482;</font></div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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&#8217;s rapid to deploy.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;</div>
    <div style="margin-left: 54pt; font-weight: bold;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-style: italic;">Descartes ShipRush</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#8482;</font></div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <table id="z013674d51fe24e5ca4ed7ad0aba1f3e3" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 18pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
          </td>
          <td style="width: 54pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold;">(iv)</td>
          <td style="width: auto; vertical-align: top; text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="font-weight: bold;"><u>Customs &amp; Regulatory Compliance</u></div>
          </td>
        </tr>

    </table>
    <div style="text-align: justify; margin-left: 18pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Our Customs &amp; Regulatory Compliance solutions<font style="font-weight: bold;">&#160;</font>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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes Global Cargo Security &#8482;</div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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&#8217; varying technical</div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> <br>
    </div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">20</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">capabilities, we offer options that range from user-friendly web portals that permit manual entry of cargo manifest information through to
      tightly integrated system-to-system electronic data interchange (&#8220;EDI&#8221;) connections. Descartes&#8217; offerings in this area include the Descartes Importer Security Filing&#8482;, Descartes ACI eManifest&#8482;, Descartes Advance Electronic Information (AEI)&#8482;,
      Descartes ACAS Solution&#8482; and others.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes Export Compliance&#8482;</div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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&#160;support compliance with the US and EU requirements for export.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes Border Compliance&#8482;</div>
    <div style="text-align: justify; margin-right: 4.5pt; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes Ocean Tariff Compliance&#8482;</div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes Electronic In-Bond&#8482;</div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes Customs Warehouse Management&#8482;</div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes Global Customs &amp; Transport&#8482;</div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Descartes&#8217; Global Customs &amp; Transport (&#8220;GCT&#8221;) 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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes Pentant&#8482;</div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Descartes Pentant<font style="font-weight: bold; font-style: italic;">&#8482; </font>is a Community System Provider (&#8220;CSP&#8221;) in the UK providing
      manufacturers, retailers, distributors and logistics service provider customers with a reliable and secure connection to both CDS (the UK&#8217;s central system for customs declarations) and the EU&#8217;s ICS to streamline declaration, cargo security and
      clearance processes. Pentant also helps</div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> <br>
    </div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">21</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">customers meet UK Revenue &amp; Customs requirements for imports and exports to be managed 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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes e-customs&#8482;</div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Descartes e-customs<font style="font-weight: bold; font-style: italic;">&#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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <table id="z3044cbc4d48c424a96223c69161af866" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 18pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
          </td>
          <td style="width: 36pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold;">(v)</td>
          <td style="width: auto; vertical-align: top; text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="font-weight: bold;"><u>Global Logistics Network Services</u></div>
          </td>
        </tr>

    </table>
    <div style="text-align: justify; margin-left: 18pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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:</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes CargoAssist&#8482;</div>
    <div style="text-align: justify; margin-left: 53.85pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes e-Pouch&#8482;</div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes webDocs&#8482;</div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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&#8217;s (&#8220;IATA&#8221;) 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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes Data Integrity Services&#8482;</div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes Cargo iQ&#8482; (formerly Cargo 2000&#8482;)</div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> <br>
    </div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">22</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes Carrier Portal&#8482;</div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Descartes Carrier Portal is a cost-effective and efficient solution designed to help carriers without EDI capabilities, shippers, and freight
      payment agencies (&#8220;FPAs&#8221;) 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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes Supplier Portal&#8482;</div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 53.85pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes GLN eArchiving&#8482;</div>
    <div style="text-align: justify; margin-left: 53.85pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Descartes GLN eArchiving enables customers to store and archive electronic documents in an &#8220;electronic safe&#8221;. This electronic safe is
      accessible from the GLN via which relevant documents can be forwarded to customer&#8217;s data warehouse to comply with standards and document retention policies.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes Port Community Services&#8482;</div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes Global Data Catalog Connect&#8482;</div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Descartes&#8217; 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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes B2B Integration&#8482;</div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Descartes B2B Integration&#8482; 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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes STEPCom&#8482;</div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes Velocity Mail&#8482;</div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes COREInsight&#8482;</div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Descartes COREInsight is a suite of supply chain applications that provides transportation management and tracking capabilities for air cargo
      shipments and assets.</div>
    <table id="z67b463f260764bfcbc9def0e00b2f1ec" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 72pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
          </td>
          <td style="width: 18pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#8226;</td>
          <td style="width: auto; vertical-align: top; text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div>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.</div>
          </td>
        </tr>

    </table>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">23</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <table id="z0f83f5b888af44baa9d0e0944e83ac5e" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 72pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
          </td>
          <td style="width: 18pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#8226;</td>
          <td style="width: auto; vertical-align: top; text-align: justify;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
          </td>
        </tr>

    </table>
    <div><br>
    </div>
    <table id="z45e83c3544b54cd69b1b5d28b6287b5d" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 18pt;"><br>
          </td>
          <td style="width: 54pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold;">(vi)</td>
          <td style="width: auto; vertical-align: top; text-align: justify;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold;"><u>Broker &amp; Forwarder Enterprise Systems</u></div>
          </td>
        </tr>

    </table>
    <div style="text-align: justify; margin-left: 18pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Descartes&#8217; 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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes ITMR4&#8482; Canadian Customs Brokerage Suite</div>
    <div style="text-align: justify; margin-left: 54pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 53.85pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes EDItrade&#8482; Customs Link</div>
    <div style="text-align: justify; margin-left: 53.85pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Descartes EDItrade Customs Link<font style="font-weight: bold; font-style: italic;">&#160;</font>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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 53.85pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes European Brokerage and Declaration</div>
    <div style="text-align: justify; margin-left: 53.85pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Descartes European Brokerage &amp; Declaration helps simplify the complexities of customs clearance in the European market. Descartes&#8217;
      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&#8217; requirements.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 53.85pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes OneView&#8482; Forwarder Enterprise &amp; Customs House Brokerage Solution</div>
    <div style="text-align: justify; margin-left: 53.85pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 53.85pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes ForwarderLogic&#8482;</div>
    <div style="text-align: justify; margin-left: 53.85pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; margin-left: 53.85pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes Foreign Trade Zone Management &#8482;</div>
    <div style="text-align: justify; margin-left: 53.85pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">The Descartes Foreign Trade Zone Management&#8482; solution unifies<font style="color: rgb(86, 86, 86);">&#160;</font>import, export, logistics,
      compliance and financial processes including filing with regulatory agencies (e.g. CBP), 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</div>
    <div style="text-align: justify; margin-left: 53.85pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> <br>
    </div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">24</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div style="text-align: justify; margin-left: 53.85pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">filing and clearance. The Descartes Foreign Trade Zone Management solution can be used with existing warehouse management solutions or one
      provided by Descartes.</div>
    <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
    </div>
    <div style="text-align: justify; margin-left: 53.85pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes Shipment Portal&#8482;</div>
    <div style="text-align: justify; margin-left: 53.85pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Descartes Shipment Portal&#8482; is a web-based portal that helps forwarders and shippers collaborate for shipment creation and status tracking
      throughout the shipment&#8217;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-weight: bold; font-style: italic;">.</font></div>
    <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
    </div>
    <table id="z2fa2cc2a8e7847e1874efa19ba2782ae" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 18pt; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
          </td>
          <td style="width: 54pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold;">(vii)</td>
          <td style="width: auto; vertical-align: top; text-align: justify; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">
            <div style="font-weight: bold;"><u>Global Trade Intelligence Solutions &amp; Services</u></div>
          </td>
        </tr>

    </table>
    <div style="text-align: justify; margin-left: 18pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Descartes&#8217; 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.</div>
    <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
    </div>
    <div style="text-align: justify; margin-left: 53.85pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes Customs Info&#8482;</div>
    <div style="text-align: justify; margin-left: 53.85pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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<font style="font-style: italic;">.</font></div>
    <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
    </div>
    <div style="text-align: justify; margin-left: 53.85pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes Datamyne&#8482;</div>
    <div style="text-align: justify; margin-left: 53.85pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
    </div>
    <div style="text-align: justify; margin-left: 53.85pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes MK Denied Party Screening&#8482;</div>
    <div style="text-align: justify; margin-left: 53.85pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
    </div>
    <div style="text-align: justify; margin-left: 53.85pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-style: italic; font-weight: bold;">Descartes Visual Compliance&#8482;</div>
    <div style="text-align: justify; margin-left: 53.85pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Descartes Visual Compliance offers more robust solutions for restricted and denied party screening, classification, automation, and export
      license management. These intuitive solutions to enhance compliance and mitigate risk include capabilities for integrated screening, visually-driven compliance workflow management, and robust export control and documentation.</div>
    <div><br>
    </div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">25</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold;"><u>Consulting, Implementation and Training Services</u></div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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'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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold;"><u>Customer Service and Support and Maintenance</u></div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold;">4.3</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<font style="font-weight: bold;">Revenue




          Sources</font></font></div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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 2021 and 2020:</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <table id="z1e7b5ad30e114fdb9c0e7168fe3cbf4d" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 27%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;" rowspan="3">
            <div style="font-weight: bold;">Revenues</div>
          </td>
          <td style="width: 73%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;" colspan="4">
            <div style="text-align: center; margin-right: 12pt;">Fiscal year ended January 31</div>
          </td>
        </tr>
        <tr>
          <td style="width: 34.72%; vertical-align: top; border-right: 1px solid rgb(0, 0, 0); border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;" colspan="2">
            <div style="text-align: center; margin-right: 12pt;">2021</div>
          </td>
          <td style="width: 38.28%; vertical-align: top; border-left: 1px solid rgb(0, 0, 0); border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;" colspan="2">
            <div style="text-align: center; margin-right: 12pt;">2020</div>
          </td>
        </tr>
        <tr>
          <td style="width: 15.13%; vertical-align: top; border-top: #000000 1px solid;">
            <div style="text-align: right; margin-right: 12pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Amount</div>
            <div style="text-align: right; margin-right: 12.25pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">(in millions)</div>
          </td>
          <td style="width: 19.58%; vertical-align: top; border-right: 1px solid rgb(0, 0, 0); border-top: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt;">Percentage of Total Revenues</div>
          </td>
          <td style="width: 18.69%; vertical-align: top; border-left: #000000 1px solid; border-top: #000000 1px solid;">
            <div style="text-align: right; margin-right: 12pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Amount</div>
            <div style="text-align: right; margin-right: 12.25pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">(in millions)</div>
          </td>
          <td style="width: 19.58%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt;">Percentage of Total Revenues</div>
          </td>
        </tr>
        <tr>
          <td style="width: 27%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div>License</div>
          </td>
          <td style="width: 15.13%; vertical-align: middle; border-top: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt;">$5.1</div>
          </td>
          <td style="width: 19.58%; vertical-align: middle; border-right: 1px solid rgb(0, 0, 0); border-top: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt;">1%</div>
          </td>
          <td style="width: 18.69%; vertical-align: middle; border-left: 1px solid rgb(0, 0, 0); border-top: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt;">$7.5</div>
          </td>
          <td style="width: 19.58%; vertical-align: middle; border-top: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt;">2%</div>
          </td>
        </tr>
        <tr>
          <td style="width: 27%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div>Services</div>
          </td>
          <td style="width: 15.13%; vertical-align: middle; border-top: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt;">309.7</div>
          </td>
          <td style="width: 19.58%; vertical-align: middle; border-right: 1px solid rgb(0, 0, 0); border-top: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt;">89%</div>
          </td>
          <td style="width: 18.69%; vertical-align: middle; border-left: 1px solid rgb(0, 0, 0); border-top: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt;">284.7</div>
          </td>
          <td style="width: 19.58%; vertical-align: middle; border-top: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt;">88%</div>
          </td>
        </tr>
        <tr>
          <td style="width: 27%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div>Professional services and other</div>
          </td>
          <td style="width: 15.13%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt;">33.9</div>
          </td>
          <td style="width: 19.58%; vertical-align: top; border-right: 1px solid rgb(0, 0, 0); border-top: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt;">10%</div>
          </td>
          <td style="width: 18.69%; vertical-align: top; border-left: 1px solid rgb(0, 0, 0); border-top: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt;">33.6</div>
          </td>
          <td style="width: 19.58%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt;">10%</div>
          </td>
        </tr>
        <tr>
          <td style="width: 27%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="font-weight: bold;">Total revenues</div>
          </td>
          <td style="width: 15.13%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt; font-weight: bold;">$348.7</div>
          </td>
          <td style="width: 19.58%; vertical-align: top; border-right: 1px solid rgb(0, 0, 0); border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt; font-weight: bold;">100%</div>
          </td>
          <td style="width: 18.69%; vertical-align: top; border-left: 1px solid rgb(0, 0, 0); border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt; font-weight: bold;">$325.8</div>
          </td>
          <td style="width: 19.58%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt; font-weight: bold;">100%</div>
          </td>
        </tr>

    </table>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold;">4.4</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<font style="font-weight: bold;">Customer




          Base</font></font></div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Our customers are globally diverse, located in the Americas, Europe, Middle East and Africa (&#8220;EMEA&#8221;) and Asia Pacific regions. Our customers range from small-
      and medium-sized enterprises to established &#8220;blue-chip&#8221; 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, wholesale distributors, and companies in industries such as healthcare, recycling/waste management, pharmaceuticals and oil and gas.</div>
    <div><br>
    </div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">26</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">The following table provides revenue information by geographic region based on the location of our customers:</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <table id="z3a495e1d179b40b3a56a06c43f24853d" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 27%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;" rowspan="3">
            <div style="font-weight: bold;">Revenues</div>
          </td>
          <td style="width: 73%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;" colspan="4">
            <div style="text-align: center; margin-right: 12pt;">Fiscal year ended January 31</div>
          </td>
        </tr>
        <tr>
          <td style="width: 34.72%; vertical-align: top; border-right: 1px solid rgb(0, 0, 0); border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;" colspan="2">
            <div style="text-align: center; margin-right: 12pt;">2021</div>
          </td>
          <td style="width: 38.28%; vertical-align: top; border-left: 1px solid rgb(0, 0, 0); border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;" colspan="2">
            <div style="text-align: center; margin-right: 12pt;">2020</div>
          </td>
        </tr>
        <tr>
          <td style="width: 15.13%; vertical-align: top; border-top: #000000 1px solid;">
            <div style="text-align: right; margin-right: 12pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Amount</div>
            <div style="text-align: right; margin-right: 12.25pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">(in millions)</div>
          </td>
          <td style="width: 19.58%; vertical-align: top; border-right: 1px solid rgb(0, 0, 0); border-top: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt;">Percentage of Total Revenues</div>
          </td>
          <td style="width: 18.69%; vertical-align: top; border-left: #000000 1px solid; border-top: #000000 1px solid;">
            <div style="text-align: right; margin-right: 12pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Amount</div>
            <div style="text-align: right; margin-right: 12.25pt; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">(in millions)</div>
          </td>
          <td style="width: 19.58%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt;">Percentage of Total Revenues</div>
          </td>
        </tr>
        <tr>
          <td style="width: 27%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div>United States</div>
          </td>
          <td style="width: 15.13%; vertical-align: middle; border-top: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt;">$211.2</div>
          </td>
          <td style="width: 19.58%; vertical-align: middle; border-right: 1px solid rgb(0, 0, 0); border-top: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt;">61%</div>
          </td>
          <td style="width: 18.69%; vertical-align: middle; border-left: 1px solid rgb(0, 0, 0); border-top: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt;">$202.8</div>
          </td>
          <td style="width: 19.58%; vertical-align: middle; border-top: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt;">62%</div>
          </td>
        </tr>
        <tr>
          <td style="width: 27%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div>Europe, Middle-East and Africa</div>
          </td>
          <td style="width: 15.13%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt;">94.2</div>
          </td>
          <td style="width: 19.58%; vertical-align: top; border-right: 1px solid rgb(0, 0, 0); border-top: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt;">27%</div>
          </td>
          <td style="width: 18.69%; vertical-align: top; border-left: 1px solid rgb(0, 0, 0); border-top: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt;">82.6</div>
          </td>
          <td style="width: 19.58%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt;">25%</div>
          </td>
        </tr>
        <tr>
          <td style="width: 27%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div>Canada</div>
          </td>
          <td style="width: 15.13%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt;">29.4</div>
          </td>
          <td style="width: 19.58%; vertical-align: top; border-right: 1px solid rgb(0, 0, 0); border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt;">8%</div>
          </td>
          <td style="width: 18.69%; vertical-align: top; border-left: 1px solid rgb(0, 0, 0); border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt;">27.3</div>
          </td>
          <td style="width: 19.58%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt;">9%</div>
          </td>
        </tr>
        <tr>
          <td style="width: 27%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div>Asia Pacific</div>
          </td>
          <td style="width: 15.13%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt;">13.9</div>
          </td>
          <td style="width: 19.58%; vertical-align: top; border-right: 1px solid rgb(0, 0, 0); border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt;">4%</div>
          </td>
          <td style="width: 18.69%; vertical-align: top; border-left: 1px solid rgb(0, 0, 0); border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt;">13.1</div>
          </td>
          <td style="width: 19.58%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt;">4%</div>
          </td>
        </tr>
        <tr>
          <td style="width: 27%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="font-weight: bold;">Total revenues</div>
          </td>
          <td style="width: 15.13%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt; font-weight: bold;">$348.7</div>
          </td>
          <td style="width: 19.58%; vertical-align: top; border-right: 1px solid rgb(0, 0, 0); border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt; font-weight: bold;">100%</div>
          </td>
          <td style="width: 18.69%; vertical-align: top; border-left: 1px solid rgb(0, 0, 0); border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt; font-weight: bold;">$325.8</div>
          </td>
          <td style="width: 19.58%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="text-align: right; margin-right: 12pt; font-weight: bold;">100%</div>
          </td>
        </tr>

    </table>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <table id="zf1e498c9b696474aae4805bac7217157" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 36pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold;">4.5</td>
          <td style="width: auto; vertical-align: top; text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="font-weight: bold;">Sales and Marketing</div>
          </td>
        </tr>

    </table>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;</div>
    <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">(a)</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<u>Sales Force</u></font></div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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, 2021, we
      employed a total of 202 individuals in sales and marketing roles and had active relationships with approximately 82 distributors and resellers.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">We are headquartered in Waterloo, Ontario, Canada, with additional representative offices in Canada in Ottawa, Ontario; Toronto, Ontario; Windsor, Ontario; and
      Montreal, 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; 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; and Sao Paulo, 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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">(b)</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<u>Strategic Marketing Alliances</u></font></div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div><br>
    </div>
    <div><br>
    </div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">27</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <table id="z3889ba6c75464ee38350ee5ce5bda626" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 36pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold;">4.6</td>
          <td style="width: auto; vertical-align: top; text-align: justify;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold;">Research and Development</div>
          </td>
        </tr>

    </table>
    <div>&#160;</div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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 2021, we incurred research and development expenses of approximately $54.1
      million, or approximately 16% of our annual consolidated revenues for 2021.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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&#8217; 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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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 2021.&#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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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 2021.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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 &#8216;One
      Networked Enterprise&#8217; initiative whereby we are consolidating legacy network infrastructure acquired as part of previous acquisition activities. We anticipate continuing this initiative through fiscal 2022, 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.</div>
    <div style="text-align: justify;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
      </font></div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div><br>
    </div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">28</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div style="text-align: justify;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold;">4.7</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<font style="font-weight: bold;">Competition</font></font></div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;</div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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).</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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, Omnitracs, 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 Blu-Jay Solutions (formerly, 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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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'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' innovations.</div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold;">4.8</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<font style="font-weight: bold;">Intellectual




          Property and Other Proprietary Rights</font></font></div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;</div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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
      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</div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> <br>
    </div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">29</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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;&#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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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,&#160;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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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&#8217;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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;</div>
    <div style="text-align: justify;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold;">4.9</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<font style="font-weight: bold;">Contracts</font></font></div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">(a)</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<u>Customer Contracts</u></font></div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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&#8217;s
      option and, in some cases, are subject to earlier termination by the customer on appropriate notice.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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&#8217;s option, and there are generally no mandatory payment obligations or obligations to license additional software or subscribe for additional services.</div>
    <div style="text-align: justify;"> <br>
    </div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">30</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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&#8217; business or in regulation impacting our customers&#8217; 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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">(b)</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<u>Outsourcing Contracts</u></font></div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> <br>
    </div>
    <div style="text-align: justify;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold;">4.10</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<font style="font-weight: bold;">Employees</font></font></div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">As at January 31, 2021, the Company employed 1,610 employees including 1,581 full-time staff. Of the 1,581 full-time staff, 438 of the individuals were engaged
      in customer service roles (which includes customer support, activations and implementation services), 539<font style="font-weight: bold;">&#160;</font>were in research and development roles, 202 were engaged in sales and marketing roles, 258 in network
      and product support roles and 144 were in general administration roles. Geographically, 929 employees were located in North America, 515 were located in Europe, 71<font style="font-weight: bold;">&#160;</font>were located in the Asia Pacific region and 66
      were located in South America.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold;">4.11</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<font style="font-weight: bold;">Risks




          Associated with Foreign Sales and Exchange Rate Fluctuations</font></font></div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">In fiscal 2021, sales outside of the Americas accounted for approximately 31% 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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">During fiscal 2021, 68% 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 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</div>
    <div style="text-align: justify; font-family: Arial; font-size: 8pt;"><font style="font-family: Verdana,Geneva,'sans-serif';"> </font><br>
    </div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">31</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">currency denominated revenue streams, expenses, and our cost to settle foreign currency denominated liabilities.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif'; font-weight: bold;">4.12</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font style="font-weight: bold;">Risks Associated with Cyclical or Seasonal Aspects of Business</font></font></div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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 Pandemic could adversely impact global shipment volumes in all modes of transportation in fiscal 2022 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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <table id="z9d42da21efda4875af0f807a9ce34fc6" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 54pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold;">4.13</td>
          <td style="width: auto; vertical-align: top; text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="font-weight: bold;">Reorganizations</div>
          </td>
        </tr>

    </table>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;</div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">In 2021, 2020 and 2019, we completed various integration and reorganization activities in connection with our acquisitions of ShipTrack, Kontainers, Peoplevox,
      StepCom, BestTransport, Core, Visual Compliance, PinPoint, VelocityMail and Aljex including merging or consolidating various legal entities and operations, eliminating redundant management positions and canceling certain ongoing operating contracts.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;</div>
    <table id="z0f8ca2f3f8be4d3c88470e6856a4e32e" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 54pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold;">4.14</td>
          <td style="width: auto; vertical-align: top; text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="font-weight: bold;">Material Contracts</div>
          </td>
        </tr>

    </table>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;</div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">The Company previously determined that the amended and expanded credit facility agreement of the Company announced on January 28, 2019 would constitute a
      &#8220;material contract&#8221; of the Company and filed a copy of the agreement on SEDAR at www.sedar.com. Particulars of such contract are disclosed in &#8220;Item 3 - General Developments of the Business&#8221; of this AIF. Other than such agreement, as of January 31,
      2021, 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.</div>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;</div>
    <table id="ze429b8bab01c4fec81c440bdeec90c5d" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 54pt; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt; font-weight: bold;">4.15</td>
          <td style="width: auto; vertical-align: top; text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="font-weight: bold;">Code of Business Conduct and Ethics</div>
          </td>
        </tr>

    </table>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;</div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Our Board of Directors has adopted our Code of Business Conduct and Ethics (&#8220;the Code&#8221;) 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 at http://www.descartes.com&#160;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.</div>
    <div><br>
    </div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">32</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div>
      <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 27.48%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);">
              <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 9pt; font-weight: bold; font-variant: small-caps;">ITEM 5<br>
              </div>
            </td>
            <td style="width: 72.52%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);">
              <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 9pt; font-weight: bold; font-variant: small-caps;">RISK FACTORS</div>
            </td>
          </tr>

      </table>
      <div><br>
      </div>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Reference is made to the section entitled &#8220;Certain Factors That May Affect Future Results&#8221; in the &#8220;Management&#8217;s Discussion and Analysis of Financial Condition
      and Results of Operations&#8221; contained in our 2021 Annual Report for the year ended January 31, 2021, 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.</div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
      </font> </div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div style="text-align: justify; font-style: italic; font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">COVID-19 Global Pandemic</div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
      </font> </div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">As of the date of this AIF, the world continues to experience the impact of the Pandemic. Businesses in many countries around the globe, including Canada, the
      United States and other countries in which we operate, have gone through a series of periods during which they have been required to close, or materially alter, their day-to-day operations due to government-ordered or recommended shut-downs and/or
      &#8220;shelter-in-place&#8221;, or equivalent, restrictions on individuals and businesses which may impact the operations of those businesses. In our own case, over the past twelve (12) months 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 AIF, and consistent with the comments we have made in our MD&amp;A from recent quarters, we continue to observe some customers with reduced shipment volumes across various modes of transportation and we are aware of some customers who have
      reduced or temporarily suspended operations or are otherwise experiencing financial hardship in their business that may temporarily or permanently impact their demand for our products and services.&#160; 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.</div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
      </font> </div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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 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 &#8220;essential service&#8221; 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.</div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
      </font> </div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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&#160;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.</div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
      </font> </div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div style="text-align: justify; font-style: italic; font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Catastrophic Events, Natural Disasters, Severe Weather and Disease</div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
      </font> </div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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,</div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">33</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div style="text-align: justify;">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.</div>
    <div style="text-align: justify;"> <br>
    </div>
    <div><br>
    </div>
    <div>
      <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 27.48%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);">
              <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 9pt; font-weight: bold; font-variant: small-caps;">ITEM 6<br>
              </div>
            </td>
            <td style="width: 72.52%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);">
              <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 9pt; font-weight: bold; font-variant: small-caps;">MARKET FOR SECURITIES AND RELATED SECURITYHOLDER MATTERS</div>
            </td>
          </tr>

      </table>
    </div>
    <div><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
      </font></div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <table id="z9982f73b62734f0b8c839e92e2274ff4" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 36pt; vertical-align: top; font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">6.1</td>
          <td style="width: auto; vertical-align: top; text-align: justify;">
            <div style="font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Common Shares</div>
          </td>
        </tr>

    </table>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;</div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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 7, 2021, there were 84,504,168 common shares outstanding. The common shares are listed on the TSX under the symbol &#8220;DSG&#8221; and listed on NASDAQ under the symbol &#8220;DSGX&#8221;.</div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
      </font> </div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;</div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <table id="zdc1f123342ff411daf70ab80e8ab5d43" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 36pt; vertical-align: top; font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">6.2</td>
          <td style="width: auto; vertical-align: top; text-align: justify;">
            <div style="font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Transfer Agent and Registrar</div>
          </td>
        </tr>

    </table>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;</div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
      </font> </div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;</div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <table id="zc1cadc12141b43b687de288acdcf051d" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 36pt; vertical-align: top; font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">6.3</td>
          <td style="width: auto; vertical-align: top; text-align: justify;">
            <div style="font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Dividend Policy</div>
          </td>
        </tr>

    </table>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;</div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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.</div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div><br>
    </div>
    <div><br>
    </div>
    <div><br>
    </div>
    <div><br>
    </div>
    <div><br>
    </div>
    <div><br>
    </div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">34</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <table id="z6ca03a9a38c046c691dcb00b37dc69f6" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 36pt; vertical-align: top; font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">6.4</td>
          <td style="width: auto; vertical-align: top; text-align: justify;">
            <div style="font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Market for Common Shares</div>
          </td>
        </tr>

    </table>
    <div>&#160;</div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Please see the following table that identifies the marketplaces on which our common shares trade, as well as the fiscal 2021 monthly price ranges and volume
      traded on each exchange:</div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
      </font> </div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <table id="z961d01f9c1ad4c4b9f42a1e9e8f2e8f4" style="border-collapse: collapse; width: 80%; color: #000000; font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left;" align="center" border="0" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 24.93%; vertical-align: top; border-width: 1px; border-style: solid; border-color: rgb(0, 0, 0); font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;</td>
          <td style="width: 37.21%; vertical-align: top; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;" colspan="2">
            <div style="text-align: center; font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Common Shares - TSX</div>
          </td>
          <td style="width: 37.86%; vertical-align: top; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;" colspan="2">
            <div style="text-align: center; font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Common Shares &#8211; NASDAQ</div>
          </td>
        </tr>
        <tr>
          <td style="width: 24.93%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Month</div>
          </td>
          <td style="width: 21.98%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Price Range (CAD$)</div>
          </td>
          <td style="width: 15.23%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Volume</div>
          </td>
          <td style="width: 21.95%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Price Range (US$)</div>
          </td>
          <td style="width: 15.9%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Volume</div>
          </td>
        </tr>
        <tr>
          <td style="width: 24.93%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: right; font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">February 2020</div>
          </td>
          <td style="width: 21.98%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">$54.50 &#8211; 62.87</div>
          </td>
          <td style="width: 15.23%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;&#160;&#160;2,631,648</div>
          </td>
          <td style="width: 21.95%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">$40.50 &#8211; 47.43</div>
          </td>
          <td style="width: 15.9%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;1,909,690</div>
          </td>
        </tr>
        <tr>
          <td style="width: 24.93%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: right; font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">March 2020</div>
          </td>
          <td style="width: 21.98%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">$38.65 &#8211; 57.55</div>
          </td>
          <td style="width: 15.23%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;&#160;&#160;6,923,801</div>
          </td>
          <td style="width: 21.95%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">$24.35 &#8211; 42.89</div>
          </td>
          <td style="width: 15.9%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;5,181,287</div>
          </td>
        </tr>
        <tr>
          <td style="width: 24.93%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: right; font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">April 2020</div>
          </td>
          <td style="width: 21.98%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">$45.53 &#8211; 59.74</div>
          </td>
          <td style="width: 15.23%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;&#160;&#160;4,185,979</div>
          </td>
          <td style="width: 21.95%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">$32.17 &#8211; 43.00</div>
          </td>
          <td style="width: 15.9%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;3,907,150</div>
          </td>
        </tr>
        <tr>
          <td style="width: 24.93%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: right; font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">May 2020</div>
          </td>
          <td style="width: 21.98%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">$57.86 &#8211; 65.71</div>
          </td>
          <td style="width: 15.23%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;&#160;&#160;3,439,179</div>
          </td>
          <td style="width: 21.95%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">$41.06 &#8211; 47.72</div>
          </td>
          <td style="width: 15.9%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;3,590,931</div>
          </td>
        </tr>
        <tr>
          <td style="width: 24.93%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: right; font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">June 2020</div>
          </td>
          <td style="width: 21.98%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">$65.08 &#8211; 72.22</div>
          </td>
          <td style="width: 15.23%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;&#160;&#160;4,073,265</div>
          </td>
          <td style="width: 21.95%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">$47.42 &#8211; 53.30</div>
          </td>
          <td style="width: 15.9%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;4,088,864</div>
          </td>
        </tr>
        <tr>
          <td style="width: 24.93%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: right; font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">July 2020</div>
          </td>
          <td style="width: 21.98%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">$68.37 &#8211; 77.13</div>
          </td>
          <td style="width: 15.23%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;&#160;&#160;4,785,921</div>
          </td>
          <td style="width: 21.95%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">$50.53 &#8211; 56.73</div>
          </td>
          <td style="width: 15.9%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;3,422,658</div>
          </td>
        </tr>
        <tr>
          <td style="width: 24.93%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: right; font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">August 2020</div>
          </td>
          <td style="width: 21.98%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">$72.04 &#8211; 80.50</div>
          </td>
          <td style="width: 15.23%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;&#160;&#160;3,351,655</div>
          </td>
          <td style="width: 21.95%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">$54.35 &#8211; 61.75</div>
          </td>
          <td style="width: 15.9%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;3,223,927</div>
          </td>
        </tr>
        <tr>
          <td style="width: 24.93%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: right; font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">September 2020</div>
          </td>
          <td style="width: 21.98%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">$67.16 &#8211; 82.40</div>
          </td>
          <td style="width: 15.23%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;&#160;&#160;4,827,099</div>
          </td>
          <td style="width: 21.95%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">$50.57 &#8211; 63.11</div>
          </td>
          <td style="width: 15.9%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;3,728,439</div>
          </td>
        </tr>
        <tr>
          <td style="width: 24.93%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: right; font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">October 2020</div>
          </td>
          <td style="width: 21.98%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">$69.22 &#8211; 78.30</div>
          </td>
          <td style="width: 15.23%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;&#160;&#160;3,124,969</div>
          </td>
          <td style="width: 21.95%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">$51.97 &#8211; 58.85</div>
          </td>
          <td style="width: 15.9%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;1,887,084</div>
          </td>
        </tr>
        <tr>
          <td style="width: 24.93%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: right; font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">November 2020</div>
          </td>
          <td style="width: 21.98%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">$67.96 &#8211; 77.53</div>
          </td>
          <td style="width: 15.23%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;&#160;&#160;3,013,970</div>
          </td>
          <td style="width: 21.95%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">$52.24 &#8211; 59.80</div>
          </td>
          <td style="width: 15.9%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;2,111,567</div>
          </td>
        </tr>
        <tr>
          <td style="width: 24.93%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: right; font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">December 2020</div>
          </td>
          <td style="width: 21.98%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">$70.94 &#8211; 78.63</div>
          </td>
          <td style="width: 15.23%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;&#160;&#160;2,907,770</div>
          </td>
          <td style="width: 21.95%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">$55.63 &#8211; 61.02</div>
          </td>
          <td style="width: 15.9%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;2,552,139</div>
          </td>
        </tr>
        <tr>
          <td style="width: 24.93%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: right; font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">January 2021</div>
          </td>
          <td style="width: 21.98%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">$71.85 &#8211; 80.91</div>
          </td>
          <td style="width: 15.23%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;&#160;&#160;2,707,294</div>
          </td>
          <td style="width: 21.95%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">$56.55 &#8211; 63.73</div>
          </td>
          <td style="width: 15.9%; vertical-align: bottom; border-left: #000000 1px solid; border-right: #000000 1px solid; border-top: #000000 1px solid; border-bottom: #000000 1px solid;">
            <div style="text-align: center; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;2,403,219</div>
          </td>
        </tr>

    </table>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
      </font> </div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">As of the date of this AIF, the most recent closing price for trading of our common shares was CAD$ 78.62 on the TSX and US$ 62.54 on the NASDAQ.</div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
      </font> </div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;</div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <table id="z8289617e48c24a4baf60a701e26c6e15" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 36pt; vertical-align: top; font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">6.5</td>
          <td style="width: auto; vertical-align: top; text-align: justify;">
            <div style="font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Shareholder Rights Plan</div>
          </td>
        </tr>

    </table>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;</div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">On November 29, 2004, our Board of Directors approved a shareholder rights plan (the &#8220;Rights Plan&#8221;) 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&#8217;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 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</div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">35</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div style="text-align: justify;">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.</div>
    <div><br>
    </div>
    <div style="text-align: justify;">
      <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 27.48%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);">
              <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 9pt; font-weight: bold; font-variant: small-caps;">ITEM 7<br>
              </div>
            </td>
            <td style="width: 72.52%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);">
              <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 9pt; font-weight: bold; font-variant: small-caps;">DIRECTORS AND EXECUTIVE OFFICERS</div>
            </td>
          </tr>

      </table>
    </div>
    <div>&#160;</div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div style="text-align: justify;"><font style="font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">7.1</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<font style="font-weight: bold;">Summary



          Information</font></font></div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;</div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">The following table sets forth the name, location of residence and office held by each of our executive officers and directors as at April 7, 2021. 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.</div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div><font style="font-family: Verdana,Geneva,'sans-serif';"><br>
      </font> </div>
    <font style="font-family: Verdana,Geneva,'sans-serif';"> </font> <font style="font-family: Verdana,Geneva,'sans-serif';"> </font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <table id="zcc0d3529679849589f80fa183e086ca3" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 48.21%; vertical-align: top;">
            <div style="font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><u>Name and Location of Residence</u></div>
            <div style="font-weight: bold;"> <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
              </font></div>
          </td>
          <td style="width: 51.79%; vertical-align: top;">
            <div style="font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><u>Office Held</u></div>
          </td>
        </tr>
        <tr>
          <td style="width: 48.21%; vertical-align: top;">
            <div><font style="font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Eric A. Demirian</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><sup style="vertical-align: text-top; line-height: 1; font-size: smaller;">(1)(3)</sup></font></div>
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Toronto, Ontario, Canada</div>
            <div> <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
              </font></div>
          </td>
          <td style="width: 51.79%; vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Chair of the Board</div>
          </td>
        </tr>
        <tr>
          <td style="width: 48.21%; vertical-align: top;">
            <div><font style="font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Deepak Chopra</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
                Toronto, Ontario, Canada</font></div>
            <div> <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
              </font></div>
          </td>
          <td style="width: 51.79%; vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Director</div>
          </td>
        </tr>
        <tr>
          <td style="width: 48.21%; vertical-align: top;">
            <div><font style="font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Deborah Close</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><sup style="vertical-align: text-top; line-height: 1; font-size: smaller;">(1)(2)</sup><br>
                Calgary, Alberta Canada<br>
                <br>
              </font></div>
          </td>
          <td style="width: 51.79%; vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Director</div>
          </td>
        </tr>
        <tr>
          <td style="width: 48.21%; vertical-align: top;">
            <div><font style="font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Dennis Maple</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><sup style="vertical-align: text-top; line-height: 1; font-size: smaller;"> (2)(4)</sup><br>
                Malvern, Pennsylvania, USA</font></div>
            <div> <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
              </font></div>
          </td>
          <td style="width: 51.79%; vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Director</div>
          </td>
        </tr>
        <tr>
          <td style="width: 48.21%; vertical-align: top;">
            <div><font style="font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Chris Muntwyler</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
                Baech, Switzerland</font></div>
            <div> <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
              </font></div>
          </td>
          <td style="width: 51.79%; vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Director</div>
          </td>
        </tr>
        <tr>
          <td style="width: 48.21%; vertical-align: top;">
            <div><font style="font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Jane O&#8217;Hagan</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><sup style="vertical-align: text-top; line-height: 1; font-size: smaller;">(2)(3)(4)</sup><br>
                Calgary, Alberta, Canada</font></div>
            <div> <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
              </font></div>
          </td>
          <td style="width: 51.79%; vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Director</div>
          </td>
        </tr>
        <tr>
          <td style="width: 48.21%; vertical-align: top;">
            <div><font style="font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">John J. Walker</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><sup style="vertical-align: text-top; line-height: 1; font-size: smaller;">(1)(3)(4)</sup></font></div>
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Wyckoff, New Jersey, USA</div>
            <div> <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
              </font></div>
          </td>
          <td style="width: 51.79%; vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Director</div>
          </td>
        </tr>
        <tr>
          <td style="width: 48.21%; vertical-align: top;">
            <div><font style="font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Edward J. Ryan</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
                Fort Washington, Pennsylvania, USA</font></div>
            <div> <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
              </font></div>
          </td>
          <td style="width: 51.79%; vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Director and Chief Executive Officer</div>
          </td>
        </tr>
        <tr>
          <td style="width: 48.21%; vertical-align: top;">
            <div><font style="font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">J. Scott Pagan</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
                Cambridge, Ontario, Canada</font></div>
            <div> <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
              </font></div>
          </td>
          <td style="width: 51.79%; vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">President and Chief Operating Officer</div>
          </td>
        </tr>
        <tr>
          <td style="width: 48.21%; vertical-align: top;">
            <div><font style="font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Allan Brett</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
                Kleinburg, Ontario, Canada</font></div>
            <div> <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
              </font></div>
          </td>
          <td style="width: 51.79%; vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Chief Financial Officer</div>
          </td>
        </tr>
        <tr>
          <td style="width: 48.21%; vertical-align: top;">
            <div><font style="font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Raimond Diederik</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
                Waterloo, Ontario, Canada</font></div>
            <div> <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
              </font></div>
          </td>
          <td style="width: 51.79%; vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Executive Vice President, Information Services</div>
          </td>
        </tr>
        <tr>
          <td style="width: 48.21%; vertical-align: top;">
            <div><font style="font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Ed Gardner</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
                Toronto, Ontario, Canada</font></div>
            <div> <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
              </font></div>
          </td>
          <td style="width: 51.79%; vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Executive Vice President, Corporate Development</div>
          </td>
        </tr>
        <tr>
          <td style="width: 48.21%; vertical-align: top;">
            <div><font style="font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Chris Jones</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
                Boston, Massachusetts, USA</font></div>
            <div> <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
              </font></div>
          </td>
          <td style="width: 51.79%; vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Executive Vice President, Marketing and Services</div>
          </td>
        </tr>
        <tr>
          <td style="width: 48.21%; vertical-align: top;">
            <div><font style="font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Robert Parker</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
                Halifax, Nova Scotia, Canada</font></div>
            <div> <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
              </font></div>
          </td>
          <td style="width: 51.79%; vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Executive Vice President, Customer Support and Client Services</div>
          </td>
        </tr>
        <tr>
          <td style="width: 48.21%; vertical-align: top;">
            <div><font style="font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Andrew Roszko</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
                Montreal, Quebec, Canada</font></div>
            <div> <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
              </font></div>
          </td>
          <td style="width: 51.79%; vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Executive Vice President, Global Sales</div>
          </td>
        </tr>
        <tr>
          <td style="width: 48.21%; vertical-align: top;" rowspan="1"><font style="font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Michael Verhoeve</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
              Waterloo, Ontario, Canada</font></td>
          <td style="width: 51.79%; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;" rowspan="1">Executive Vice President, Legal, General Counsel and Corporate Secretary <br>
          </td>
        </tr>

    </table>
    <div> <br>
    </div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">36</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div><br>
    </div>
    <table id="za2aec3120eda4b10aa943c89d9741427" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 48.21%; vertical-align: top;">
            <div style="font-weight: bold; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><u>Name and Location of Residence</u></div>
          </td>
          <td style="width: 51.79%; vertical-align: top; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">
            <div style="font-weight: bold;"><u>Office Held</u></div>
            <div style="font-weight: bold;"> <br>
            </div>
          </td>
        </tr>
        <tr>
          <td style="width: 48.21%; vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><font style="font-weight: bold;">Kenneth Wood</font><br>
              Fort Myers, Florida, USA</div>
          </td>
          <td style="width: 51.79%; vertical-align: top;">
            <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Executive Vice President, Product Management</div>
          </td>
        </tr>

    </table>
    <div style="text-indent: -36pt; margin-left: 72pt;"> <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
      </font></div>
    <div style="text-indent: -36pt; margin-left: 72pt; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Notes:</div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <table id="ze0ef924a4424483e97dff63b4815c1d8" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 36pt;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
            </font> </td>
          <td style="width: 36pt; vertical-align: top; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">(1)</td>
          <td style="width: auto; vertical-align: top;">
            <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Member of the Audit Committee.</div>
          </td>
        </tr>

    </table>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <table id="z3a48afa3db2a4541b17fe48226d50399" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 36pt;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
            </font> </td>
          <td style="width: 36pt; vertical-align: top; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">(2)</td>
          <td style="width: auto; vertical-align: top;">
            <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Member of the Compensation Committee.</div>
          </td>
        </tr>

    </table>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <table id="z2305d1c7f2f84033b60f52ed31c557ca" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 36pt;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
            </font> </td>
          <td style="width: 36pt; vertical-align: top; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">(3)</td>
          <td style="width: auto; vertical-align: top;">
            <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Member of the Corporate Governance Committee.</div>
          </td>
        </tr>

    </table>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <table id="z3562b70338154e219fd1e9bd083c1405" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 36pt;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
            </font> </td>
          <td style="width: 36pt; vertical-align: top; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">(4)</td>
          <td style="width: auto; vertical-align: top;">
            <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Member of the Nominating Committee</div>
          </td>
        </tr>

    </table>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
      </font> </div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">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, 2021, is as follows:</div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
      </font> </div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify;"><font style="font-weight: bold; font-style: italic; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Eric A. Demirian</font><font style="font-weight: bold; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">&#160;</font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">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&#8217;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.
        (&#8220;Parklea&#8221;), 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&#8217;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 (&#8220;PwC&#8221;) 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.</font></div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
      </font> </div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify;"><font style="font-weight: bold; font-style: italic; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Deepak Chopra </font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">joined our
        Board of Directors on May 28, 2020.&#160; Mr. 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 and
        the Toronto Region Board of Trade. He currently sits on the board of Celestica, Inc. (TSX:CLS) and The North West Company (TSX:NWC). Mr. Chopra is a Fellow of the Institute of Chartered Professional Accountants of Canada and has a Bachelor&#8217;s degree
        in Commerce (Honours) and a Master&#8217;s Degree in Business Management (PGDBM).</font></div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
      </font> </div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify;"><font style="font-weight: bold; font-style: italic; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Deborah Close </font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">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&#8217;s tenure, DO2 grew from a start-up to the leading provider of e-invoicing to oil and gas companies and their suppliers. Prior to DO2, Ms. Close served in a number of Regional Vice President roles in Halliburton
        Corporation&#8217;s software division, Landmark Graphics.&#160; She held executive roles in several of Landmark&#8217;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&#8217;s 12 years at Halliburton, she worked in Canada, the US and Europe.&#160; Ms. Close also currently serves on the board of directors of a private oil and gas company.&#160; 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.</font></div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
      </font> </div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify;"><font style="font-weight: bold; font-style: italic; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Dennis Maple</font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> 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</font></div>
    <div style="text-align: justify;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> <br>
      </font></div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">37</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div style="text-align: justify; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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&#8217;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.</div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">&#160;</div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div style="text-align: justify;"><font style="font-weight: bold; font-style: italic; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Chris Muntwyler </font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">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 2001 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&#8217;s Committee on the United Kingdom&#8217;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.</font></div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
      </font> </div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div style="text-align: justify;"><font style="font-weight: bold; font-style: italic; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">Jane O&#8217;Hagan </font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">has been a
        member of our Board of Directors since May 2014. From 2010 until 2014, Ms. O&#8217;Hagan was the Executive Vice President and Chief Marketing Officer of Canadian Pacific Railway Limited (&#8220;CP Rail&#8221;). Ms. O&#8217;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&#8217;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&#160; Ms. O&#8217;Hagan serves as the Chair of USD Partners GP LLC board&#8217;s conflicts committee and as a member of the audit
        committee. In 2018, Ms. O&#8217;Hagan joined the board of Pinnacle Renewable Holdings (TSX:PL), a supplier of industrial wood pellets based in Richmond, BC and serves as a member of the audit and risk committees. Ms. O&#8217;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&#8217;Hagan was named one of Canada&#8217;s Top 100 Most Powerful Women by the Women&#8217;s Executive Network. Ms. O&#8217;Hagan 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.&#160;</font></div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"><br>
      </font> </div>
    <font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> </font>
    <div style="text-align: justify;"><font style="font-weight: bold; font-style: italic; font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;">John J. Walker</font><font style="font-family: Verdana,Geneva,'sans-serif'; font-size: 8pt;"> has been a
        member of our Board of Directors since September 2011. Mr. Walker is 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</font></div>
    <div style="text-align: justify;"> <br>
    </div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">38</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"></font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"></font>
    <div style="text-align: justify; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">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. 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.</div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify;"><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
      </font> </div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify;"><font style="font-weight: bold; font-style: italic; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Edward J. Ryan</font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> 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.</font></div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
      </font> </div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify;"><font style="font-weight: bold; font-style: italic; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">J. Scott Pagan</font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> 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.</font></div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
      </font> </div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify;"><font style="font-weight: bold; font-style: italic; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Allan Brett</font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> 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.</font></div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
      </font> </div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify;"><font style="font-weight: bold; font-style: italic; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Raimond Diederik</font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> 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 Operations &amp; Information Technology in June 2006 and then appointed Executive Vice President,
        Information Services in September 2009.</font></div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
      </font> </div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify;"><font style="font-weight: bold; font-style: italic; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Ed Gardner</font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> 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.&#160; Mr. Gardner&#8217;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&#8217;s Transaction Advisory Services practice in London, England.</font></div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
      </font> </div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify;"><font style="font-weight: bold; font-style: italic; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Chris Jones </font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">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'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.</font></div>
    <div><br>
    </div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">39</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div style="text-align: justify;"><font style="font-weight: bold; font-style: italic; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Robert Parker</font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> 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&#8217; global customer
        support and client services organization and brings over 20 years of senior management and logistics consulting experience to Descartes.</font></div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
      </font> </div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify;"><font style="font-weight: bold; font-style: italic; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Andrew Roszko </font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">was appointed
        Executive Vice President, Global Sales in February 2019. 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 most recent appointment to an Executive Vice President role.</font></div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
      </font> </div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify;"><font style="font-weight: bold; font-style: italic; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Michael Verhoeve </font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">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.</font></div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
      </font> </div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify;"><font style="font-weight: bold; font-style: italic; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Kenneth Wood</font><font style="font-weight: bold; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">&#160;</font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">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's previous experience included leadership roles in development, consulting and product management&#160;with leading supply chain software providers such as CAPS Logistics, i2 Technologies,
        and Centricity.</font></div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
      </font> </div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">To our knowledge, as at April 7, 2021, our directors and executive officers as a group beneficially owned, or controlled or directed, directly or indirectly,
      273,584&#160;of our common shares, representing approximately 0.32% of the common shares then outstanding.</div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">&#160;</div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify;"><font style="font-weight: bold; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">7.2</font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<font style="font-weight: bold;">Committees



          of the Board of Directors</font></font></div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">&#160;</div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">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.</div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">&#160;</div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify; font-style: italic; font-weight: bold; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Audit Committee</div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">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'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's compliance with Applicable Requirements (as defined in Descartes&#8217; Audit Committee 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's financial management; reviewing related party transactions involving the Company and its Board or executive management.</div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
      </font> </div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">The Board of Directors has adopted an amended Audit Committee charter setting out the scope of the Audit Committee&#8217;s functions, responsibilities and membership
      requirements. A copy of that charter is attached as Appendix &#8220;A&#8221; to this AIF.</div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
      </font> </div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">The Audit Committee is currently composed of three independent directors: Mr. John J. Walker (Chair), Ms. Deborah Close and Mr. Eric Demirian. The Board of
      Directors has resolved that Mr. Walker and Mr. Demirian are each an &#8220;audit committee financial expert&#8221; as defined in paragraph 8(b) of General Instruction B to Form 40-F promulgated by the Securities and Exchange Commission and that each is
      financially sophisticated for the purposes of NASDAQ Rule 5605(c)(2)(A).</div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
      </font> </div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">The following sets out the education and experience of the members of the Audit Committee, each of whom is independent and financially literate:</div>
    <div>&#160;</div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">40</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify; margin-left: 36pt;"><font style="font-weight: bold; font-style: italic; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">John J. Walker</font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> C.P.A., C.G.M.A., B.S. &#8211; 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&#8217;s.</font></div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
      </font> </div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify; margin-left: 36pt;"><font style="font-weight: bold; font-style: italic; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Deborah Close</font><font style="font-weight: bold; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">&#160;</font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">B.A., ICD.D &#8211; Ms. Close is formerly the President of the Production Services division of Tervita Corporation, a position she held for five
        years during which she held full P&amp;L responsibility for a division with 1,000 employees;&#160;represented the division in financial disclosure and reporting reviews for the corporation; and sat on the executive risk management committee.&#160; Ms. Close
        has held numerous senior executive positions in the oil and gas industry over the course of her 40-year career, including 12 years with Halliburton Corporation in various capacities across Canada, the US and Europe.&#160; 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.</font></div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
      </font> </div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify; margin-left: 36pt;"><font style="font-weight: bold; font-style: italic; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Eric A. Demirian </font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">BBM., C.P.A., C.G.A, C.A.&#8211; Mr. Demirian is the Chair of the Corporation&#8217;s Board of Directors and was previously the Chair of the Corporation&#8217;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. (&#8220;Parklea&#8221;), 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&#8217;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 (&#8220;PwC&#8221;) 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.</font></div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
      </font> </div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">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 &#8220;B&#8221; to this AIF.</div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">&#160;</div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify; font-style: italic; font-weight: bold; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Compensation Committee</div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">The Compensation Committee is appointed by the Board of Directors to discharge the Board's duties and responsibilities relating to the compensation of the
      Company's Chief Executive Officer and senior management, as well as to review the human resource policies and practices that cover the Company's employees. The Compensation Committee is currently composed of three independent directors: Ms. Deborah
      Close (Chair), Mr. Dennis Maple and Ms. Jane O&#8217;Hagan.</div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
      </font> </div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify; font-style: italic; font-weight: bold; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Corporate Governance Committee</div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">The Corporate Governance Committee is primarily responsible for overseeing Descartes' 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 three independent directors: Ms. Jane O&#8217;Hagan (Chair),
      Mr. Eric Demirian, and Mr. John Walker.</div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
      </font> </div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify; font-style: italic; font-weight: bold; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Nominating Committee</div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">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 three independent directors: Mr. Dennis Maple (Chair), Ms. Jane</div>
    <div style="text-align: justify; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> <br>
    </div>
    <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
      <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">41</font></div>
      <div id="DSPFPageBreak" style="page-break-after:always;">
        <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
    </div>
    <div style="text-align: justify; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">O&#8217;Hagan and Mr. John Walker.</div>
    <div><br>
    </div>
    <div>
      <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 27.48%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);">
              <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 9pt; font-weight: bold; font-variant: small-caps;">ITEM 8<br>
              </div>
            </td>
            <td style="width: 72.52%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);">
              <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 9pt; font-weight: bold; font-variant: small-caps;">EXTERNAL AUDITORS</div>
            </td>
          </tr>

      </table>
    </div>
    <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
      </font> </div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">For the fiscal year ended January 31, 2021, 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.</div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
      </font> </div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify; color: rgb(0, 0, 0); font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">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 &#8211; 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):</div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify;"><br>
    </div>
    <div><br>
    </div>
    <table id="zb8b1df75d5b9407dafcb884f975e13c7" style="font-family: 'Times New Roman',Times,serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: rgb(0, 0, 0);" border="0" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 22.93%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0);">
            <div style="text-align: right; font-weight: bold; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Fiscal Year Ended</div>
          </td>
          <td style="width: 15%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0);">
            <div style="text-align: right; font-weight: bold; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Audit Fees</div>
          </td>
          <td style="width: 18%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0);">
            <div style="text-align: right; font-weight: bold; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Audit-Related Fees</div>
          </td>
          <td style="width: 14%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0);" colspan="1">
            <div style="text-align: right; font-weight: bold; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Tax Fees</div>
          </td>
          <td style="width: 14%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0);">
            <div style="text-align: right; font-weight: bold; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">All Other Fees</div>
          </td>
          <td style="width: 16%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);">
            <div style="text-align: right; font-weight: bold; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Total</div>
          </td>
        </tr>
        <tr>
          <td style="width: 22.93%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0);">
            <div style="font-weight: bold; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">January 31, 2021</div>
          </td>
          <td style="width: 15%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0);">
            <div style="text-align: right; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">$651,748</div>
          </td>
          <td style="width: 18%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0);">
            <div style="text-align: right; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">$2,430</div>
          </td>
          <td style="width: 14%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0);" colspan="1">
            <div style="text-align: right; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Nil</div>
          </td>
          <td style="width: 14%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0);">
            <div style="text-align: right; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Nil</div>
          </td>
          <td style="width: 16%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);">
            <div style="text-align: right; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">$654,178</div>
          </td>
        </tr>
        <tr>
          <td style="width: 22.93%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);">
            <div style="font-weight: bold; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">January 31, 2020</div>
          </td>
          <td style="width: 15%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);">
            <div style="text-align: right; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">$769,782</div>
          </td>
          <td style="width: 18%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);">
            <div style="text-align: right; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">$2,430</div>
          </td>
          <td style="width: 14%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);" colspan="1">
            <div style="text-align: right; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Nil</div>
          </td>
          <td style="width: 14%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);">
            <div style="text-align: right; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Nil</div>
          </td>
          <td style="width: 16%; vertical-align: top; border-width: 1px; border-style: solid; border-color: rgb(0, 0, 0);">
            <div style="text-align: right; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">$772,212</div>
          </td>
        </tr>

    </table>
    <div><br>
    </div>
    <div style="text-align: justify; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">&#8220;Audit Fees&#8221; consist of fees and related disbursements for professional services rendered for the audit of the Company&#8217;s annual consolidated financial
      statements, reviews of the Company&#8217;s interim consolidated financial statements, services provided in connection with regulatory filings and statutory audits of certain of the Company&#8217;s foreign subsidiaries.</div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
      </font> </div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">&#8220;Audit-Related Fees&#8221; consist of fees for assurance and related services that are reasonably related to the performance of the audit or review of the Company&#8217;s
      financial statements and are not reported as &#8220;Audit Fees&#8221;.</div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
      </font> </div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div style="text-align: justify; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">The above amounts are exclusive of any related taxes but are inclusive of disbursements charged to the Company.</div>
    <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
    <div><br>
      <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 27.48%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);">
              <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 9pt; font-weight: bold; font-variant: small-caps;">ITEM 9<br>
              </div>
            </td>
            <td style="width: 72.52%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);">
              <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 9pt; font-weight: bold; font-variant: small-caps;">LEGAL PROCEEDINGS</div>
            </td>
          </tr>

      </table>
      <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
      <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
        </font> </div>
      <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
      <div style="text-align: justify; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">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.</div>
      <font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"></font>
      <div><br>
        <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

            <tr>
              <td style="width: 27.48%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);">
                <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 9pt; font-weight: bold; font-variant: small-caps;">ITEM 10<br>
                </div>
              </td>
              <td style="width: 72.52%; vertical-align: top; border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);">
                <div style="font-family: Verdana,Geneva,'sans-serif'; font-size: 9pt; font-weight: bold; font-variant: small-caps;">ADDITIONAL INFORMATION</div>
              </td>
            </tr>

        </table>
      </div>
    </div>
    <div><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"><br>
      </font><font style="font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';"> </font>
      <div style="text-align: justify; font-size: 8pt; font-family: Verdana,Geneva,'sans-serif';">Additional information about us is available at our website at http://www.descartes.com, on SEDAR at http://www.sedar.com&#160;and on EDGAR at http://www.sec.gov.
        Additional information, including directors&#8217; and officers&#8217; 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 May 28, 2020. Additional financial information is provided in the section entitled &#8220;Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations&#8221; 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, 2021.</div>
      <div style="text-align: center;"><font style="font-weight: bold;"> </font><br>
      </div>
      <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
        <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">42</font></div>
        <div id="DSPFPageBreak" style="page-break-after:always;">
          <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
      </div>
      <div style="text-align: center; font-weight: bold;">
        <div style="font-family: 'Times New Roman'; font-weight: normal;">Appendix &#8220;A&#8221; to Annual Information Form</div>
        <div style="text-align: left; font-family: 'Times New Roman';"> <br>
        </div>
        <div style="text-align: left; font-family: 'Times New Roman';"> <br>
        </div>
      </div>
      <div style="text-align: center; font-weight: bold;">THE DESCARTES SYSTEMS GROUP INC.</div>
      <div><br>
      </div>
      <div style="text-align: center; font-weight: bold;"> CHARTER FOR</div>
      <div style="text-align: center; font-weight: bold;">THE AUDIT COMMITTEE OF</div>
      <div style="text-align: center; font-weight: bold;">THE BOARD OF DIRECTORS</div>
      <div>&#160;&#160; </div>
      <div style="font-weight: bold;">A. PURPOSE</div>
      <div>&#160;</div>
      <table id="z471eb0c0a9694876aa2295794188f098" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">1.</td>
            <td style="width: auto; vertical-align: top;">
              <div>The primary functions of the Audit Committee are to oversee the accounting and financial reporting practices of The Descartes Systems Group Inc. (the &#8220;<font style="font-weight: bold;">Company</font>&#8221;) and the audits of the Company&#8217;s
                financial statements and to exercise the responsibilities and duties set forth below, including, but not limited to, assisting the Board of Directors (the &#8220;<font style="font-weight: bold;">Board</font>&#8221;) 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&#8217;s financial management; oversight of overall risk management within the Company;
                oversight of the Company&#8217;s internal audit function; and reviewing related party transactions.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <div style="font-weight: bold;">B. MEMBERSHIP AND ORGANIZATION</div>
      <div>&#160;</div>
      <table id="z9a0f5c95e54d44beab1d2e3d6d6e386c" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">1.</td>
            <td style="width: auto; vertical-align: top;">
              <div><font style="font-weight: bold;">Composition</font> - 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&#8217;s management and others may
                attend Audit Committee meetings as the Audit Committee considers necessary or desirable.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="ze033f6c3d53f47fb8955b559a987fcb8" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">2.</td>
            <td style="width: auto; vertical-align: top;">
              <div><font style="font-weight: bold;">Appointment and Removal of Audit Committee Members</font> - 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&#8217;s shareholders at which the member'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.</div>
            </td>
          </tr>

      </table>
      <div>&#160; <br>
      </div>
      <table id="z76cee44dd8da46f2a799704ac3098ec1" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">3.</td>
            <td style="width: auto; vertical-align: top;">
              <div><font style="font-weight: bold;">Chair</font> - 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</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
        <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">43</font></div>
        <div id="DSPFPageBreak" style="page-break-after:always;">
          <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
      </div>
      <div style="text-align: center;">Appendix &#8220;A&#8221; to Annual Information Form</div>
      <div><br>
      </div>
      <div>&#160;</div>
      <table id="z27aeebcd1f12463993e5bafd945ec251" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;"><br>
            </td>
            <td style="width: auto; vertical-align: top;">
              <div>shall: be a member of the Audit Committee, preside over all Audit Committee meetings that he or she attends, coordinate the Audit Committee's compliance with this mandate, work with management to develop the Audit Committee's annual
                work-plan and provide reports of the Audit Committee to the Board.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="z28e27a68242046789fd83ea264d58ec1" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">4.</td>
            <td style="width: auto; vertical-align: top;">
              <div><font style="font-weight: bold;">Independence</font> - 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 &#8220;<font style="font-weight: bold;">Applicable Requirements</font>&#8221;) related to independence and audit
                committee composition.</div>
            </td>
          </tr>

      </table>
      <div>&#160;&#160; </div>
      <table id="z7c0a787413be4d6a9668b02e951704be" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">5.</td>
            <td style="width: auto; vertical-align: top;">
              <div><font style="font-weight: bold;">Financial Expertise</font> - 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 &#8220;<font style="font-weight: bold;">financially literate</font>&#8221; 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.&#160; 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&#8217;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.&#160; Further, at least one member of the Audit Committee shall qualify as an &#8220;<font style="font-weight: bold;">audit committee financial expert</font>&#8221;
                (as such term is defined under the Securities and Exchange Commission&#8217;s rules).</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <div style="font-weight: bold;">C. MEETINGS</div>
      <div>&#160;</div>
      <table id="z7d06b25b4b18405ab9fdc57a0bbc3030" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">1.</td>
            <td style="width: auto; vertical-align: top;">
              <div><font style="font-weight: bold;">Meetings</font> - 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&#8217;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</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
        <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">44</font></div>
        <div id="DSPFPageBreak" style="page-break-after:always;">
          <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
      </div>
      <div>
        <div style="text-align: center; font-family: 'Times New Roman'; font-weight: normal;">Appendix &#8220;A&#8221; to Annual Information Form</div>
      </div>
      <div><br>
      </div>
      <div>&#160;</div>
      <table id="z18b43aba0be14d1982f19f5db7b338a9" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;"><br>
            </td>
            <td style="width: auto; vertical-align: top;">
              <div>notifying the Company&#8217;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.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="zf34d65ca51644ace8851dc4b1c659648" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">2.</td>
            <td style="width: auto; vertical-align: top;">
              <div><font style="font-weight: bold;">Secretary and Minutes</font> - 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.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="zcfe5ee6bf9554d48929fcd9b60d0d544" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">3.</td>
            <td style="width: auto; vertical-align: top;">
              <div><font style="font-weight: bold;">Quorum</font> - A majority of the members of the Audit Committee shall constitute a quorum.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="z853db1a562b747089292b4a1bbe6bd6c" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">4.</td>
            <td style="width: auto; vertical-align: top;">
              <div><font style="font-weight: bold;">Access to Management and Outside Advisors</font> - The Audit Committee shall have unrestricted access to the Company&#8217;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.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="zf591a02d8e2449229fcef1d78fa98b78" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">5.</td>
            <td style="width: auto; vertical-align: top;">
              <div><font style="font-weight: bold;">Meetings Without Management</font> - The Audit Committee shall hold unscheduled or regularly scheduled meetings, or portions of regularly scheduled meetings, at which management is not present.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <div style="font-weight: bold;">D. FUNCTIONS AND RESPONSIBILITIES</div>
      <div>&#160;</div>
      <div>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.</div>
      <div>&#160;</div>
      <table id="z2cf8e7d6a5bc4f9fa6c9a1706690aed1" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">1.</td>
            <td style="width: auto; vertical-align: top;">
              <div style="font-weight: bold;">Financial Reports</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
        <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">45</font></div>
        <div id="DSPFPageBreak" style="page-break-after:always;">
          <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
      </div>
      <div>
        <div style="text-align: center; font-family: 'Times New Roman'; font-weight: normal;">Appendix &#8220;A&#8221; to Annual Information Form</div>
      </div>
      <div><br>
      </div>
      <div>&#160;</div>
      <table id="z1cd03475b66547ec886bef98ad8613e6" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">a.</td>
            <td style="width: auto; vertical-align: top;">
              <div>General - The Audit Committee is responsible for overseeing the Company&#8217;s accounting and financial reporting practices and the audits of the Company&#8217;s financial statements. Management is responsible for the preparation, presentation and
                integrity of the Company&#8217;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&#8217;s
                annual consolidated financial statements and for reviewing the Company&#8217;s unaudited interim financial statements.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="z31a2b20786e8477a91621e4d44d9631f" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">b.</td>
            <td style="width: auto; vertical-align: top;">
              <div>Review of Annual Financial Reports - The Audit Committee shall review the annual consolidated audited financial statements of the Company<u style="border-bottom: 1px solid;">&#160;</u>prepared by management, the auditors' report thereon and
                the related management's discussion and analysis of the Company&#8217;s financial condition and results of operation (&#8220;<font style="font-weight: bold;">MD&amp;A</font>&#8221;). 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.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="z0fbcd4d59fe04407931c6648f634eb46" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">c.</td>
            <td style="width: auto; vertical-align: top;">
              <div>Review of Interim Financial Reports - The Audit Committee shall review the interim consolidated financial statements of the Company prepared by management, the auditors&#8217; 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.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="z1acf21a948d34798bb0ea98313e0f60e" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">d.</td>
            <td style="width: auto; vertical-align: top;">
              <div>Review Considerations - In conducting its review of the annual financial statements or the interim financial statements, the Audit Committee shall:</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="z8ffcad3b2f0d4222ba72f50a314de2af" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 90pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">i.</td>
            <td style="width: auto; vertical-align: top;">
              <div>meet with management and the auditors to discuss the financial statements and MD&amp;A;</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="z2968757037d04854994c887540973c32" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 90pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">ii.</td>
            <td style="width: auto; vertical-align: top;">
              <div>review the disclosures in the financial statements;</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="zfe882acbdac14af48cbb33360c7b26d6" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 90pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top;">iii.</td>
            <td style="width: auto; vertical-align: top;">
              <div>review the audit report or review report prepared by the auditors;</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="z8279624646d345df9cea12b4fca4182b" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 90pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top;">iv.</td>
            <td style="width: auto; vertical-align: top;">
              <div>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;</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
        <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">46</font></div>
        <div id="DSPFPageBreak" style="page-break-after:always;">
          <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
      </div>
      <div>
        <div style="text-align: center; font-family: 'Times New Roman'; font-weight: normal;">Appendix &#8220;A&#8221; to Annual Information Form</div>
      </div>
      <div><br>
      </div>
      <div>&#160;</div>
      <table id="z835f80956c124f83b0868cedb3ca49bb" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 90pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">v.</td>
            <td style="width: auto; vertical-align: top;">
              <div>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;</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="z2931dab9d82544c497daed6894e9e8b4" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 90pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top;">vi.</td>
            <td style="width: auto; vertical-align: top;">
              <div>review the accounting policies followed and critical accounting and other significant estimates and judgments underlying the financial statements as presented by management;</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="za8dac17d37e94a57955fbcbb6f4a63b0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 90pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top;">vii.</td>
            <td style="width: auto; vertical-align: top;">
              <div>review any material effects of regulatory accounting initiatives or off-balance sheet structures on the financial statements as presented by management;</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="zc12b0110b0be4a9aa9a3ed0f8211f799" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 90pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top;">viii.</td>
            <td style="width: auto; vertical-align: top;">
              <div>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;</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="z2fc42a9f356d492baca368a453152e84" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 90pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top;">ix.</td>
            <td style="width: auto; vertical-align: top;">
              <div>review the methods used to account for significant unusual transactions;</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="za1846925c4ba4668ba24982168b7bb9c" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 90pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">x.</td>
            <td style="width: auto; vertical-align: top;">
              <div>review the effect of significant accounting policies in controversial or emerging areas for which there is a lack of authoritative guidance or consensus;</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="zdfef0fa3752b442781b2810572f58a83" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 90pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top;">xi.</td>
            <td style="width: auto; vertical-align: top;">
              <div>review significant recorded and unrecorded audit adjustments;</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="zad67a3c2b985480badd16cb88cbcc35f" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 90pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top;">xii.</td>
            <td style="width: auto; vertical-align: top;">
              <div>review any&#160; material&#160;&#160; accounting&#160;&#160; issues&#160;&#160; among&#160; management&#160;&#160; and the auditors;</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="zf0103effa78042b296568c11b54548df" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 90pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top;">xiii.</td>
            <td style="width: auto; vertical-align: top;">
              <div>review management's report on the effectiveness of internal controls over financial reporting;</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="z2242026e80314e2b8b30222e9dc5459c" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 90pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top;">xiv.</td>
            <td style="width: auto; vertical-align: top;">
              <div>review the factors identified by management as factors that may affect future financial results;</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="zfa1ee43c2757450bbe9c419f5afd9025" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 90pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top;">xv.</td>
            <td style="width: auto; vertical-align: top;">
              <div>review results of the Company&#8217;s audit committee hotline program; and</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="zb63102464c8b46cb9e313f3e4b4ecd5c" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 90pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top;">xvi.</td>
            <td style="width: auto; vertical-align: top;">
              <div>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.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
        <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">47</font></div>
        <div id="DSPFPageBreak" style="page-break-after:always;">
          <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
      </div>
      <div>
        <div style="text-align: center; font-family: 'Times New Roman'; font-weight: normal;">Appendix &#8220;A&#8221; to Annual Information Form</div>
        &#160;</div>
      <div><br>
      </div>
      <table id="zc7c3a2de0657465ab05595110914c941" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">e.</td>
            <td style="width: auto; vertical-align: top;">
              <div>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.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="z03f9cf7a7b414ad2ac71d405b89d4cdd" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">2.</td>
            <td style="width: auto; vertical-align: top;">
              <div style="font-weight: bold;">Independent Auditors</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="z78596f5393c54acea259d81ca7c3f058" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">a.</td>
            <td style="width: auto; vertical-align: top;">
              <div>General -The Audit Committee shall be responsible for oversight of the work of the auditors, including the auditors&#8217; work in preparing or issuing an audit report, performing other audit, review or attest services or any other related
                work.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="z6b76fa5e77694f2097b353693008fa04" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">b.</td>
            <td style="width: auto; vertical-align: top;">
              <div>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&#8217; audit plan.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="za53afc28f9a747d6823fe6f419c1fd8e" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">c.</td>
            <td style="width: auto; vertical-align: top;">
              <div>Resolution of Disagreements &#8211; Review all reportable events, including any disagreements, unresolved issues and consultations (as those terms are defined by Applicable Requirements), with the Company&#8217;s auditors, whether or not there is to
                be a change of auditors.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="ze2fd2bb7660e4a67bab0fa37a8db4884" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">d.</td>
            <td style="width: auto; vertical-align: top;">
              <div>Change of Auditors &#8211; 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.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="zcc3d392adbb74177a9964c3f16b24abc" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">e.</td>
            <td style="width: auto; vertical-align: top;">
              <div>Discussions with Auditors &#8211; 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.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="z6173854b88d246dcbfeb8d8b946c08e7" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">f.</td>
            <td style="width: auto; vertical-align: top;">
              <div>Audit Plan - At least annually, the Audit Committee shall review a</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
        <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">48</font></div>
        <div id="DSPFPageBreak" style="page-break-after:always;">
          <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
      </div>
      <div>
        <div style="text-align: center; font-family: 'Times New Roman'; font-weight: normal;">Appendix &#8220;A&#8221; to Annual Information Form</div>
      </div>
      <div><br>
      </div>
      <div>&#160;</div>
      <table id="z4d759586c820451e91bee64f7bbb30ee" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;"><br>
            </td>
            <td style="width: auto; vertical-align: top;">
              <div>summary of the auditors' annual audit plan. The Audit Committee shall consider and review with the auditors any material changes to the scope of the plan.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="z7f94f120d27543d09bedc434a62c9253" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">g.</td>
            <td style="width: auto; vertical-align: top;">
              <div>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.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="z4733f3ad38434965a34d9e4ec7775e94" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">h.</td>
            <td style="width: auto; vertical-align: top;">
              <div>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.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="zcfaadc4be7b146d6b8b197399041cc4b" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">i.</td>
            <td style="width: auto; vertical-align: top;">
              <div>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.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="z750f786ba38d4e0ca90c4f88efd05466" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">j.</td>
            <td style="width: auto; vertical-align: top;">
              <div>Evaluation of performance and audit quality &#8211;&#160; 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.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="zd7b1618b0aec4c5596271761110b8afe" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">k.</td>
            <td style="width: auto; vertical-align: top;">
              <div>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</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
        <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">49</font></div>
        <div id="DSPFPageBreak" style="page-break-after:always;">
          <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
      </div>
      <div>
        <div style="text-align: center; font-family: 'Times New Roman'; font-weight: normal;">Appendix &#8220;A&#8221; to Annual Information Form</div>
      </div>
      <div><br>
      </div>
      <div>&#160;</div>
      <table id="z1f778f1b9b6f41d390fb7b8c5ccae1d4" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;"><br>
            </td>
            <td style="width: auto; vertical-align: top;">
              <div>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.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="zfb52bc6e8dcc454b90307255a18c47bb" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">l.</td>
            <td style="width: auto; vertical-align: top;">
              <div>Review of Professional Services - The Audit Committee shall review reports from management at each quarterly Audit Committee meeting scheduled to consider the Company&#8217;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.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="zb3c050771342496b827458fbf458eb46" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top;">m.</td>
            <td style="width: auto; vertical-align: top;">
              <div>Approval of Hiring Policies - The Audit Committee shall review and approve the Company&#8217;s hiring policies regarding partners, employees and former partners and employees of the present and former external auditors of the Company.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="z979e5a8d125f4b6796b0b71b3ad5ac1a" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">3.</td>
            <td style="width: auto; vertical-align: top;">
              <div style="font-weight: bold;">Internal Controls</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="za0f136119d2446dbb7538de8ae901c0f" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">a.</td>
            <td style="width: auto; vertical-align: top;">
              <div>General - The Audit Committee shall review reports from management on the nature, establishment, monitoring and effectiveness of the Company&#8217;s system of internal control over financial reporting and disclosure controls and procedures (as
                those terms are defined in the Applicable Requirements).</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="z37f7ddd6e30141ad8e1b0dd850c427b1" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">b.</td>
            <td style="width: auto; vertical-align: top;">
              <div>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:</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="z0ad237e8aa624feca9b5f708d9175fa7" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 90pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">i.</td>
            <td style="width: auto; vertical-align: top;">
              <div>the effectiveness of, or weaknesses or deficiencies in the design or operation of the Company&#8217;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's conclusions;</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
        <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">50</font></div>
        <div id="DSPFPageBreak" style="page-break-after:always;">
          <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
      </div>
      <div>
        <div style="text-align: center; font-family: 'Times New Roman'; font-weight: normal;">Appendix &#8220;A&#8221; to Annual Information Form</div>
      </div>
      <div><br>
      </div>
      <div>&#160;</div>
      <table id="za570cefd8ed74bbc91ce7f27c8d6b6c3" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 90pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">ii.</td>
            <td style="width: auto; vertical-align: top;">
              <div>any significant changes in internal control over financial reporting that are disclosed, or considered for disclosure, including those in the Company&#8217;s periodic regulatory filings;</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="z937d66414c0742809eb2e8e18bb620fc" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 90pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top;">iii.</td>
            <td style="width: auto; vertical-align: top;">
              <div>the auditors&#8217; report on the Company&#8217;s internal control over financial reporting;</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="zd9276dde2d6d4bc9b53b494c8af0761c" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 90pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top;">iv.</td>
            <td style="width: auto; vertical-align: top;">
              <div>any material issues raised by any inquiry or investigation by the Company&#8217;s regulators;</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="z1f9140f4bf0943a08445b95d9430a022" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 90pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">v.</td>
            <td style="width: auto; vertical-align: top;">
              <div>the Company&#8217;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</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="zb0f138ade7b54c9fababf57c8ad73b15" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 90pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top;">vi.</td>
            <td style="width: auto; vertical-align: top;">
              <div>any related significant issues and recommendations of the auditors together with management's responses thereto, including the timetable for implementation of recommendations to correct weaknesses in internal controls over financial
                reporting and disclosure controls.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <div>&#160;</div>
      <div style="margin-left: 18pt; font-weight: bold;">E. Risk Management</div>
      <div>&#160;</div>
      <table id="z1360bc22532943c4a3acf8c12630db4e" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">c.</td>
            <td style="width: auto; vertical-align: top;">
              <div>General &#8211; In addition to being responsible for overseeing risks related to the Company&#8217;s accounting, financial statements, financial reporting process and internal controls related to financial reporting, the Audit Committee is also
                responsible for overseeing management&#8217;s implementation and operation of the enterprise risk management program, as documented in the Risk Management Policy established by the Board of Directors.&#160;&#160; 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.</div>
            </td>
          </tr>

      </table>
      <table id="z8df6561befd148eb8c7384c300da9e65" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">d.</td>
            <td style="width: auto; vertical-align: top;">
              <div>Management Responsibilities - Management is responsible for:</div>
            </td>
          </tr>

      </table>
      <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
        <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">51</font></div>
        <div id="DSPFPageBreak" style="page-break-after:always;">
          <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
      </div>
      <div>
        <div style="text-align: center; font-family: 'Times New Roman'; font-weight: normal;">Appendix &#8220;A&#8221; to Annual Information Form</div>
      </div>
      <div><br>
      </div>
      <div><br>
      </div>
      <table id="z39bff8ba5de64d9ebd1b92f896445a4b" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 76.5pt;"><br>
            </td>
            <td style="width: 31.5pt; vertical-align: top; align: right;">i.</td>
            <td style="width: auto; vertical-align: top;">
              <div>ensuring the development and implementation of the Risk Management process.&#160; Risk Management is the framework required to identify, assess and develop strategies to manage and monitor control risks;</div>
            </td>
          </tr>

      </table>
      <table id="z8288290ae5004948af2b58aa2f1f0ebe" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 76.5pt;"><br>
            </td>
            <td style="width: 31.5pt; vertical-align: top; align: right;">ii.</td>
            <td style="width: auto; vertical-align: top;">
              <div>the design and implementation of the actions, measures and/or processes to mitigate to an appropriate level all material risks in the business (the &#8220;<font style="font-weight: bold;">Risk Controls</font>&#8221;) including the design and
                implementation of appropriate crisis preparedness, business continuity and disaster recovery plans; and</div>
            </td>
          </tr>

      </table>
      <table id="z3f79e53fefa840b1be6eb8a9dde368a3" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 76.5pt;"><br>
            </td>
            <td style="width: 31.5pt; vertical-align: top; align: right;">iii.</td>
            <td style="width: auto; vertical-align: top;">
              <div>monitoring overall compliance with and adherence to the Risk Management Policy as established by the Board of Directors.</div>
            </td>
          </tr>

      </table>
      <table id="zfea5ae57fc934ac0b75f6b1622baf391" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">e.</td>
            <td style="width: auto; vertical-align: top;">
              <div>Audit Committee Responsibilities - The Audit Committee is responsible for:</div>
            </td>
          </tr>

      </table>
      <table id="ze89bec73038c4fc7b82fb904e4ae706c" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 76.5pt;"><br>
            </td>
            <td style="width: 31.5pt; vertical-align: top; align: right;">i.</td>
            <td style="width: auto; vertical-align: top;">
              <div>at least annually, reviewing the effectiveness of the Risk Management program that is in place.&#160; 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);</div>
            </td>
          </tr>

      </table>
      <table id="z338a05ae19a6476da8d89c65326acb2f" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 76.5pt;"><br>
            </td>
            <td style="width: 31.5pt; vertical-align: top; align: right;">ii.</td>
            <td style="width: auto; vertical-align: top;">
              <div>periodically monitor risk and risk management capabilities within the Company including crisis preparedness, business continuity and disaster recovery plans; and</div>
            </td>
          </tr>

      </table>
      <table id="zd75cc56cf922439da8ed4f2272e2efd8" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 76.5pt;"><br>
            </td>
            <td style="width: 31.5pt; vertical-align: top; align: right;">iii.</td>
            <td style="width: auto; vertical-align: top;">
              <div>reporting to the Board of Directors on its oversight of the Company&#8217;s Risk Management program,&#160; including an assessment of whether the program is being followed and is effective.</div>
            </td>
          </tr>

      </table>
      <table id="z56f13b9def9740339445b2ebd2c85a7c" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">f.</td>
            <td style="width: auto; vertical-align: top;">
              <div>Computerized<font style="font-weight: bold;">&#160;</font>Information Systems<font style="font-weight: bold;">&#160;</font>- The Audit Committee shall review reports from the Company&#8217;s management containing its assessment of the adequacy of the
                Company&#8217;s computerized information system controls and security and related risks, including cybersecurity risk.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="ze83a2e274c5c4a2dacba3c34a6c6352a" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">4.</td>
            <td style="width: auto; vertical-align: top;">
              <div><font style="font-weight: bold;">Internal</font>&#160;<font style="font-weight: bold;">Audit</font> &#8211; the Audit Committee may choose to establish and maintain an</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
        <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">52</font></div>
        <div id="DSPFPageBreak" style="page-break-after:always;">
          <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
      </div>
      <div>
        <div style="text-align: center; font-family: 'Times New Roman'; font-weight: normal;">Appendix &#8220;A&#8221; to Annual Information Form</div>
      </div>
      <div><br>
      </div>
      <div>&#160;</div>
      <table id="zbf64949b0f4f487089215db62b8644ba" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;"><br>
            </td>
            <td style="width: auto; vertical-align: top;">
              <div>Internal Audit function from time to time.&#160;&#160; If so established, the internal audit function will report directly to the Chair of the Audit Committee and administratively to the Chief Financial Officer.&#160; In relation to the internal audit
                function, if so established and maintained, the Audit Committee shall:</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="z290c5a199f6e49dea3955972e8fc222b" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">a.</td>
            <td style="width: auto; vertical-align: top;">
              <div>Establish an internal audit charter and review and approve any necessary revisions to such charter on an annual basis;</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="z44f4357a20ce47f18cea7714334bff09" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">b.</td>
            <td style="width: auto; vertical-align: top;">
              <div>review and evaluate the effectiveness of the internal audit function;</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="zaa7bc4133d8f42e18356edf87ec19d33" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">c.</td>
            <td style="width: auto; vertical-align: top;">
              <div>review the&#160; operating budget for the internal audit function including staffing levels and resources; and</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="za3e625e47dad457c9e1f4176e4d18c92" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 54pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">d.</td>
            <td style="width: auto; vertical-align: top;">
              <div>On a regular basis, meet with the head of the internal audit function without other members of management present.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="zc6821f140d054cfea8b17558000252b0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">5.</td>
            <td style="width: auto; vertical-align: top;">
              <div><font style="font-weight: bold;">Compliance with Legal and Regulatory Requirements</font> - The Audit Committee shall review reports from the Company&#8217;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&#8217;s compliance policies; and any material communications received from regulators. The Audit Committee shall review management's evaluation of and representations
                relating to compliance with specific Applicable Requirements, and management's plans to remediate any deficiencies identified.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="zaef187bea7e74307801a325bd977495d" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">6.</td>
            <td style="width: auto; vertical-align: top;">
              <div><font style="font-weight: bold;">Audit Committee Hotline Procedures</font> - 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.&#160; 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&#8217;s general counsel to reach a satisfactory conclusion.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="z929118bbffe144b4a2394e688afe4cb9" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">7.</td>
            <td style="width: auto; vertical-align: top;">
              <div><font style="font-weight: bold;">Audit Committee Disclosure</font> - The Audit Committee shall prepare, review and approve any audit committee disclosures required by Applicable Requirements in the Company&#8217;s disclosure documents.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
        <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">53</font></div>
        <div id="DSPFPageBreak" style="page-break-after:always;">
          <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
      </div>
      <div>
        <div style="text-align: center; font-family: 'Times New Roman'; font-weight: normal;">Appendix &#8220;A&#8221; to Annual Information Form</div>
        <div style="text-align: center; font-family: 'Times New Roman'; font-weight: normal;"> <br>
        </div>
      </div>
      <div><br>
      </div>
      <table id="z8c24478e1934430ea5233d0177adee13" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">8.</td>
            <td style="width: auto; vertical-align: top;">
              <div><font style="font-weight: bold;">Related Party Transactions</font> - The Audit Committee shall review the Company&#8217;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. &#160;&#160;For the purposes of the above, a
                &#8220;significant transaction&#8221; 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.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="zd5e03e608f294e9282333102bac5aedc" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">9.</td>
            <td style="width: auto; vertical-align: top;">
              <div>&#160;<font style="font-weight: bold;">Requirement for Review and Approval of the CEO Business Expenses</font> - 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.&#160; Such approval may be provided subsequent to reimbursement of such expenses.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="zf1eff3647c0c4d168e3981a04cad7361" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top;">10.</td>
            <td style="width: auto; vertical-align: top;">
              <div><font style="font-weight: bold;">Review of Audit Committee Charter - </font>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.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <table id="z9a7134d8e52f4d0e863a71c795928fac" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top;">11.</td>
            <td style="width: auto; vertical-align: top;">
              <div><font style="font-weight: bold;">Delegation</font> - 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.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <div style="font-weight: bold;">F. REPORTING TO THE BOARD</div>
      <div>&#160;</div>
      <table id="zad155a801a09465b82d5e78bc1ac1f1a" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">1.</td>
            <td style="width: auto; vertical-align: top;">
              <div>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's recommendation to the Board for its approval.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
        <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">54</font></div>
        <div id="DSPFPageBreak" style="page-break-after:always;">
          <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
      </div>
      <div>
        <div style="text-align: center; font-family: 'Times New Roman'; font-weight: normal;">Appendix &#8220;A&#8221; to Annual Information Form</div>
      </div>
      <div>&#160;</div>
      <div>&#160;</div>
      <div style="font-weight: bold;">G. GENERAL</div>
      <div>&#160;</div>
      <table id="z256b126e80aa4c08bd8ac807189171c5" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">1.</td>
            <td style="width: auto; vertical-align: top;">
              <div>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&#8217;s discretion, to exercise its powers and fulfill the
                duties under this mandate.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <div style="font-weight: bold;">H. CURRENCY OF THE AUDIT COMMITTEE CHARTER</div>
      <div>&#160;</div>
      <table id="z357a294a74474fca8b4823c5c70b9799" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

          <tr>
            <td style="width: 18pt;"><br>
            </td>
            <td style="width: 18pt; vertical-align: top; align: right;">1.</td>
            <td style="width: auto; vertical-align: top;">
              <div>This charter was last approved by the Audit Committee and Board on March 30, 2021.</div>
            </td>
          </tr>

      </table>
      <div>&#160;</div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div><br>
        <div><br>
        </div>
        <div><br>
        </div>
        <div><br>
          <div><br>
          </div>
          <br>
        </div>
        <br>
      </div>
      <div><br>
      </div>
      <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
        <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">55</font></div>
        <div id="DSPFPageBreak" style="page-break-after:always;">
          <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
      </div>
      <div>
        <div style="text-align: center; font-family: 'Times New Roman'; font-weight: normal;">Appendix &#8220;B&#8221; to Annual Information Form</div>
      </div>
      <div>&#160;</div>
      <div> <br>
      </div>
      <div style="text-align: center; color: #000000; font-weight: bold;">PRE-APPROVAL POLICY AND PROCEDURE FOR ENGAGEMENTS OF THE INDEPENDENT AUDITOR</div>
      <div>&#160;</div>
      <div style="color: #000000;">The responsibilities of the Company&#8217;s audit committee are set out in the Company&#8217;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' 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&#8217;s Audit Committee has adopted the following Pre-Approval Policy and Procedure.</div>
      <div>&#160;</div>
      <div style="color: #000000;">Under the Audit Committee'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.</div>
      <div>&#160;</div>
      <div style="color: #000000;">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.</div>
      <div>&#160;</div>
      <div style="color: #000000;">The term of any pre-approval applies to the Company&#8217;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.</div>
      <div>&#160;</div>
      <div style="color: #000000; font-weight: bold;">Audit Services</div>
      <div>&#160;</div>
      <div style="color: #000000;">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&#8217;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' attestation of management's report on</div>
      <div>&#160;</div>
      <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
        <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">56</font></div>
        <div id="DSPFPageBreak" style="page-break-after:always;">
          <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
      </div>
      <div>
        <div>
          <div style="text-align: center; font-family: 'Times New Roman'; font-weight: normal;">Appendix &#8220;B&#8221; to Annual Information Form</div>
        </div>
      </div>
      <div><br>
      </div>
      <div>&#160;</div>
      <div style="color: #000000;">internal controls for financial reporting consistent with applicable securities legislation, as applicable.</div>
      <div>&#160;</div>
      <div style="color: #000000;">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.</div>
      <div>&#160;</div>
      <div style="color: #000000; font-weight: bold;">Audit-Related Services</div>
      &#160; &#160;
      <div style="color: #000000;">Audit-Related services include services that are reasonably related to the review of the Company&#8217;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.</div>
      <div>&#160;</div>
      <div style="color: #000000;">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.</div>
      <div>&#160;</div>
      <div style="color: #000000; font-weight: bold;">Tax Services&#160; </div>
      <div>&#160;</div>
      <div style="color: #000000;">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.</div>
      <div>&#160;</div>
      <div style="color: #000000; font-weight: bold;">All Other Services&#160; </div>
      <div>&#160;</div>
      <div style="color: #000000;">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.</div>
      <div>&#160;</div>
      <div id="DSPFPageBreakArea" style="clear: both; margin-top: 10pt; margin-bottom: 10pt;">
        <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">57</font></div>
        <div id="DSPFPageBreak" style="page-break-after:always;">
          <hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" noshade="noshade"></div>
      </div>
      <div>
        <div style="text-align: center; font-family: 'Times New Roman'; font-weight: normal;">Appendix &#8220;B&#8221; to Annual Information Form</div>
      </div>
      <div><br>
      </div>
      <div>&#160;</div>
      <div style="color: #000000; font-weight: bold;">Prohibited Services</div>
      <div>&#160;</div>
      <div style="color: #000000;">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'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.</div>
      <div>&#160;</div>
      <div style="color: #000000; font-weight: bold;">Delegation&#160; </div>
      <div>&#160;</div>
      <div style="color: #000000;">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&#8217;s responsibilities to pre-approve services performed by the independent auditor.</div>
      <div>&#160;</div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div><br>
        <div><br>
        </div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div><br>
          <div><br>
          </div>
          <div><br>
          </div>
          <div><br>
          </div>
          <div><br>
          </div>
          <div><br>
          </div>
          <br>
        </div>
        <br>
      </div>
    </div>
  </div>
  <div style="text-align: center;" id="DSPFPageNumberArea"><font style="font-family: Verdana, Geneva, 'sans-serif'; font-size: 8pt; font-weight: normal; font-style: normal;" id="DSPFPageNumber">58</font></div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-99.3
<SEQUENCE>3
<FILENAME>exhibit99-3.htm
<DESCRIPTION>CONSENT OF KPMG LLP
<TEXT>
<html>
  <head>
    <title></title>
    <!-- Licensed to: morganlewis
         Document created using EDGARfilings PROfile 7.4.0.0
         Copyright 1995 - 2021 Broadridge -->
  </head>
<body style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000;" bgcolor="#ffffff">
  <div>
    <div>
      <div style="text-align: right; color: #000000; font-weight: bold;">EXHIBIT 99.3</div>
    </div>
    <div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: center; color: #000000; font-weight: bold;">Consent of Independent Registered Public Accounting Firm</div>
      <div>&#160;</div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="color: #000000;">The Board of Directors</div>
    </div>
    <div>
      <div style="color: #000000;">The Descartes Systems Group Inc.</div>
      <div>&#160;</div>
      <div style="font-family: 'Times New Roman';">We consent to the use of:</div>
      <div>&#160;</div>
      <div>
        <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="zffba130985cf4224b993df1385d0b2c1" cellpadding="0" cellspacing="0">

            <tr>
              <td style="width: 18pt; vertical-align: top; align: right;">
                <div style="font-family: 'Times New Roman';">&#8226;</div>
              </td>
              <td style="width: auto; vertical-align: top;">
                <div style="color: #000000; font-family: 'Times New Roman';">Our report dated March 3, 2021 on the consolidated financial statements of The Descartes Systems Group Inc. (the &#8220;Company&#8221;), which comprise the consolidated balance sheets as of
                  January 31, 2021 and January 31, 2020, the related statements of operations, comprehensive income, shareholders&#8217; equity and cash flows for each of the years in the three-year period ended January 31, 2021, and the related notes, and</div>
              </td>
            </tr>

        </table>
      </div>
      <div>
        <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" id="zbc97c3e518304b7fb96eef9b926b566d" cellpadding="0" cellspacing="0">

            <tr>
              <td style="width: 18pt; vertical-align: top; align: right;">
                <div style="font-family: 'Times New Roman';">&#8226;</div>
              </td>
              <td style="width: auto; vertical-align: top;">
                <div style="color: #000000; font-family: 'Times New Roman';">our report dated March 3, 2021 on the effectiveness of internal control over financial reporting as of January&#160;31, 2021</div>
              </td>
            </tr>

        </table>
      </div>
      <div style="font-family: 'Times New Roman';">each of which is included in the Annual Report on Form 40-F of the Company for the fiscal year ended January 31, 2021.</div>
      <div>&#160;</div>
      <div style="font-family: 'Times New Roman';">We also consent to the incorporation by reference of such reports in the Registration Statement (No. 333-<font style="color: #000000;">239754</font>) on Form F-10/A.</div>
      <div>&#160;</div>
      <div style="font-family: 'Times New Roman';"><font style="color: #000000;">Our report dated March 3, 2021 on the consolidated financial statements contains an explanatory paragraph that states that the Company has changed its method of accounting for
          leases in 2020 due to the adoption of Accounting Standards Codification (ASC) Topic 842</font>.</div>
      <div>&#160;</div>
      <div>&#160;</div>
      <div style="color: #000000;">/s/ KPMG LLP</div>
      <div>&#160;</div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="color: #000000;">Chartered Professional Accountants, Licensed Public Accountants</div>
      <div style="color: #000000;">April 7, 2021</div>
    </div>
    <div>
      <div style="color: #000000;">Toronto, Canada</div>
      <div>&#160;</div>
    </div>
  </div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-99.4
<SEQUENCE>4
<FILENAME>exhibit99-4.htm
<DESCRIPTION>CERTIFICATION OF THE CHIEF EXECUTIVE OFFICER PURSUANT TO RULE 13A-14 OR 15D-14 OF THE SECURITIES EXCHANGE ACT OF 1934, AS ADOPTED PURSUANT TO SECTION 302 OF THE SARBANES-OXLEY ACT OF 2002
<TEXT>
<html>
  <head>
    <title></title>
    <!-- Licensed to: morganlewis
         Document created using EDGARfilings PROfile 7.4.0.0
         Copyright 1995 - 2021 Broadridge -->
  </head>
<body style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000;" bgcolor="#ffffff">
  <div>
    <div>
      <div style="text-align: right; color: #000000; font-weight: bold;">EXHIBIT 99.4</div>
    </div>
    <div>
      <div><br>
      </div>
      <div>&#160;</div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: center; color: #000000; font-weight: bold;">CERTIFICATION PURSUANT TO RULE 13a-14 or 15d-14 OF THE</div>
      <div style="text-align: center; color: #000000; font-weight: bold;">SECURITIES EXCHANGE ACT OF 1934, AS ADOPTED PURSUANT TO</div>
    </div>
    <div>
      <div style="text-align: center; color: #000000; font-weight: bold;">SECTION&#160;302 OF THE SARBANES-OXLEY ACT OF 2002</div>
      <div>&#160;</div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="color: #000000;">I, Edward J. Ryan, certify that:</div>
      <div><br>
      </div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" id="ze097da341bc34a9f896ed736f582558e" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 5.02%; vertical-align: top;">
            <div style="color: #000000;">1.</div>
          </td>
          <td style="width: 94.98%; vertical-align: top;">
            <div style="color: #000000;">I have reviewed this annual report on Form&#160;40-F of The Descartes Systems Group Inc.;</div>
          </td>
        </tr>

    </table>
    <div>
      <div><br>
      </div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" id="zc1ae6ae386404a41bc47082e9c42fbdf" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 5.02%; vertical-align: top;">
            <div style="color: #000000;">2.</div>
          </td>
          <td style="width: 94.98%; vertical-align: top;">
            <div style="color: #000000;">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;</div>
          </td>
        </tr>

    </table>
    <div>
      <div><br>
      </div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" id="z3165c4896cd44c7183699ee4568b7f9b" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 5.02%; vertical-align: top;">
            <div style="color: #000000;">3.</div>
          </td>
          <td style="width: 94.98%; vertical-align: top;">
            <div style="color: #000000;">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&#160;issuer&#160;as of, and for, the periods presented in this report;</div>
          </td>
        </tr>

    </table>
    <div>
      <div><br>
      </div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" id="z0fbf1e2f20ae4444a6172ea1102af19a" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 5.02%; vertical-align: top;">
            <div style="color: #000000;">4.</div>
          </td>
          <td style="width: 94.98%; vertical-align: top;">
            <div style="color: #000000;">The&#160;issuer&#8217;s other certifying officer(s)&#160;and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules&#160;13a-15(e)&#160;and 15d-15(e)) and internal control over
              financial reporting (as defined in Exchange Act Rules&#160;13a-15(f)&#160;and 15d-15(f)) for the&#160;issuer&#160;and have:</div>
          </td>
        </tr>

    </table>
    <div>
      <div><br>
      </div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" id="z8c496b6329ce4897aad9f232b6c9cc46" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 5.02%; vertical-align: middle;">&#160;</td>
          <td style="width: 5.02%; vertical-align: top;">
            <div style="color: #000000;">(a)</div>
          </td>
          <td style="width: 89.96%; vertical-align: top;">
            <div style="color: #000000;">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&#160;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;</div>
          </td>
        </tr>

    </table>
    <div>
      <div><br>
      </div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" id="zeccf9f0dd4b647a393b27dbe444ad53e" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 5.02%; vertical-align: middle;">&#160;</td>
          <td style="width: 5.02%; vertical-align: top;">
            <div style="color: #000000;">(b)</div>
          </td>
          <td style="width: 89.96%; vertical-align: top;">
            <div style="color: #000000;">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;</div>
          </td>
        </tr>

    </table>
    <div>
      <div><br>
      </div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" id="zbeeeda5bd15e4e5686bdb33e342a644f" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 5.02%; vertical-align: middle;">&#160;</td>
          <td style="width: 5.02%; vertical-align: top;">
            <div style="color: #000000;">(c)</div>
          </td>
          <td style="width: 89.96%; vertical-align: top;">
            <div style="color: #000000;">Evaluated the effectiveness of the&#160;issuer&#8217;s&#160;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</div>
          </td>
        </tr>

    </table>
    <div>
      <div><br>
      </div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" id="z1207f4174e39428cb061958eb4f70b6b" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 5.02%; vertical-align: middle;">&#160;</td>
          <td style="width: 5.02%; vertical-align: top;">
            <div style="color: #000000;">(d)</div>
          </td>
          <td style="width: 89.96%; vertical-align: top;">
            <div style="color: #000000;">Disclosed in this report any change in the&#160;issuer&#8217;s&#160;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&#160;issuer&#8217;s&#160;internal control over financial reporting; and</div>
          </td>
        </tr>

    </table>
    <div>
      <div><br>
      </div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" id="zaa3f52cc48fd4bb5a3585f2043b4c974" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 5.02%; vertical-align: top;">
            <div style="color: #000000;">5.</div>
          </td>
          <td style="width: 94.98%; vertical-align: top;">
            <div style="color: #000000;">The&#160;issuer&#8217;s&#160;other certifying officer(s)&#160;and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the&#160;issuer&#8217;s&#160;auditors and the audit committee of the&#160;issuer&#8217;s&#160;board
              of directors (or persons performing the equivalent functions):</div>
          </td>
        </tr>

    </table>
    <div>
      <div><br>
      </div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" id="z3d1fba7b300f4d54ad5fbb32f1fb6241" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 5.02%; vertical-align: middle;">&#160;</td>
          <td style="width: 5.02%; vertical-align: top;">
            <div style="color: #000000;">(a)</div>
          </td>
          <td style="width: 89.96%; vertical-align: top;">
            <div style="color: #000000;">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&#160;issuer&#8217;s&#160;ability to record, process,
              summarize and report financial information; and</div>
          </td>
        </tr>

    </table>
    <div>
      <div><br>
      </div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" id="z2a6fe069ac3b4e78bf32eaea30598eb8" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 5.02%; vertical-align: middle;">&#160;</td>
          <td style="width: 5.02%; vertical-align: top;">
            <div style="color: #000000;">(b)</div>
          </td>
          <td style="width: 89.96%; vertical-align: top;">
            <div style="color: #000000;">Any fraud, whether or not material, that involves management or other employees who have a significant role in the&#160;issuer&#8217;s&#160;internal control over financial reporting.</div>
          </td>
        </tr>

    </table>
    <div>
      <div><br>
      </div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" id="z65f1602e0d914710812882976f3b2ca4" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 45.2%; vertical-align: top;">
            <div style="color: #000000;">Dated: April 7, 2021</div>
          </td>
          <td style="width: 11.82%; vertical-align: top;">&#160;</td>
          <td style="width: 42.98%; vertical-align: top;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 45.2%; vertical-align: top;">&#160;</td>
          <td style="width: 11.82%; vertical-align: top;">
            <div style="text-align: right; color: #000000;">By:</div>
          </td>
          <td style="width: 42.98%; vertical-align: top; border-bottom: #000000 1px solid;">
            <div style="text-align: justify; color: #000000;">&#160;&#160;/s/ Edward J. Ryan</div>
          </td>
        </tr>
        <tr>
          <td style="width: 45.2%; vertical-align: top;">&#160;</td>
          <td style="width: 11.82%; vertical-align: top;">
            <div style="text-align: right; color: #000000;">Name:</div>
          </td>
          <td style="width: 42.98%; vertical-align: top;">
            <div style="text-align: justify; color: #000000;">&#160;&#160;Edward J. Ryan</div>
          </td>
        </tr>
        <tr>
          <td style="width: 45.2%; vertical-align: top;">&#160;</td>
          <td style="width: 11.82%; vertical-align: top;">
            <div style="text-align: right; color: #000000;">Title:</div>
          </td>
          <td style="width: 42.98%; vertical-align: top;">
            <div style="text-align: justify; color: #000000;">&#160;&#160;Chief Executive Officer</div>
          </td>
        </tr>

    </table>
  </div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-99.5
<SEQUENCE>5
<FILENAME>exhibit99-5.htm
<DESCRIPTION>CERTIFICATION OF THE CHIEF FINANCIAL OFFICER PURSUANT TO RULE 13A-14 OR 15D-14 OF THE SECURITIES EXCHANGE ACT OF 1934, AS ADOPTED PURSUANT TO SECTION 302 OF THE SARBANES-OXLEY ACT OF 2002
<TEXT>
<html>
  <head>
    <title></title>
    <!-- Licensed to: morganlewis
         Document created using EDGARfilings PROfile 7.4.0.0
         Copyright 1995 - 2021 Broadridge -->
  </head>
<body style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000;" bgcolor="#ffffff">
  <div>
    <div style="text-align: right;"><font style="font-weight: bold;">EXHIBIT 99.5</font></div>
    <div> </div>
    <div>
      <div><br>
      </div>
      <div>&#160;</div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: center; color: #000000; font-weight: bold;">CERTIFICATION PURSUANT TO RULE 13a-14 or 15d-14 OF THE</div>
      <div style="text-align: center; color: #000000; font-weight: bold;">SECURITIES EXCHANGE ACT OF 1934, AS ADOPTED PURSUANT TO</div>
    </div>
    <div>
      <div style="text-align: center; color: #000000; font-weight: bold;">SECTION&#160;302 OF THE SARBANES-OXLEY ACT OF 2002</div>
      <div>&#160;</div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="color: #000000;">I, Allan Brett, certify that:</div>
      <div><br>
      </div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 5.02%; vertical-align: top;">
            <div style="color: #000000;">1.</div>
          </td>
          <td style="width: 94.98%; vertical-align: top;">
            <div style="color: #000000;">I have reviewed this annual report on Form&#160;40-F of The Descartes Systems Group Inc.;</div>
          </td>
        </tr>

    </table>
    <div>
      <div><br>
      </div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 5.02%; vertical-align: top;">
            <div style="color: #000000;">2.</div>
          </td>
          <td style="width: 94.98%; vertical-align: top;">
            <div style="color: #000000;">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;</div>
          </td>
        </tr>

    </table>
    <div>
      <div><br>
      </div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 5.02%; vertical-align: top;">
            <div style="color: #000000;">3.</div>
          </td>
          <td style="width: 94.98%; vertical-align: top;">
            <div style="color: #000000;">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&#160;issuer&#160;as of, and for, the periods presented in this report;</div>
          </td>
        </tr>

    </table>
    <div>
      <div><br>
      </div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 5.02%; vertical-align: top;">
            <div style="color: #000000;">4.</div>
          </td>
          <td style="width: 94.98%; vertical-align: top;">
            <div style="color: #000000;">The&#160;issuer&#8217;s&#160;other certifying officer(s)&#160;and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules&#160;13a-15(e)&#160;and 15d-15(e)) and internal control over
              financial reporting (as defined in Exchange Act Rules&#160;13a-15(f)&#160;and 15d-15(f)) for the&#160;issuer&#160;and have:</div>
          </td>
        </tr>

    </table>
    <div>
      <div><br>
      </div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 5.02%; vertical-align: middle;">&#160;</td>
          <td style="width: 5.02%; vertical-align: top;">
            <div style="color: #000000;">(a)</div>
          </td>
          <td style="width: 89.96%; vertical-align: top;">
            <div style="color: #000000;">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&#160;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;</div>
          </td>
        </tr>

    </table>
    <div>
      <div><br>
      </div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 5.02%; vertical-align: middle;">&#160;</td>
          <td style="width: 5.02%; vertical-align: top;">
            <div style="color: #000000;">(b)</div>
          </td>
          <td style="width: 89.96%; vertical-align: top;">
            <div style="color: #000000;">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;</div>
          </td>
        </tr>

    </table>
    <div>
      <div><br>
      </div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 5.02%; vertical-align: middle;">&#160;</td>
          <td style="width: 5.02%; vertical-align: top;">
            <div style="color: #000000;">(c)</div>
          </td>
          <td style="width: 89.96%; vertical-align: top;">
            <div style="color: #000000;">Evaluated the effectiveness of the&#160;issuer&#8217;s&#160;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</div>
          </td>
        </tr>

    </table>
    <div>
      <div><br>
      </div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 5.02%; vertical-align: middle;">&#160;</td>
          <td style="width: 5.02%; vertical-align: top;">
            <div style="color: #000000;">(d)</div>
          </td>
          <td style="width: 89.96%; vertical-align: top;">
            <div style="color: #000000;">Disclosed in this report any change in the&#160;issuer&#8217;s&#160;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&#160;issuer&#8217;s&#160;internal control over financial reporting; and</div>
          </td>
        </tr>

    </table>
    <div>
      <div><br>
      </div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 5.02%; vertical-align: top;">
            <div style="color: #000000;">5.</div>
          </td>
          <td style="width: 94.98%; vertical-align: top;">
            <div style="color: #000000;">The&#160;issuer&#8217;s&#160;other certifying officer(s)&#160;and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the&#160;issuer&#8217;s&#160;auditors and the audit committee of the&#160;issuer&#8217;s&#160;board
              of directors (or persons performing the equivalent functions):</div>
          </td>
        </tr>

    </table>
    <div>
      <div><br>
      </div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 5.02%; vertical-align: middle;">&#160;</td>
          <td style="width: 5.02%; vertical-align: top;">
            <div style="color: #000000;">(a)</div>
          </td>
          <td style="width: 89.96%; vertical-align: top;">
            <div style="color: #000000;">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&#160;issuer&#8217;s&#160;ability to record, process,
              summarize and report financial information; and</div>
          </td>
        </tr>

    </table>
    <div>
      <div><br>
      </div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 5.02%; vertical-align: middle;">&#160;</td>
          <td style="width: 5.02%; vertical-align: top;">
            <div style="color: #000000;">(b)</div>
          </td>
          <td style="width: 89.96%; vertical-align: top;">
            <div style="color: #000000;">Any fraud, whether or not material, that involves management or other employees who have a significant role in the&#160;issuer&#8217;s&#160;internal control over financial reporting.</div>
          </td>
        </tr>

    </table>
    <div>
      <div><br>
      </div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 49.55%; vertical-align: top;">
            <div style="color: #000000;">Dated: April 7, 2021</div>
          </td>
          <td style="width: 7.43%; vertical-align: top;">&#160;</td>
          <td style="width: 43.02%; vertical-align: top;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 49.55%; vertical-align: top;">&#160;</td>
          <td style="width: 7.43%; vertical-align: top;">
            <div style="text-align: right; color: #000000;">By:</div>
          </td>
          <td style="width: 43.02%; vertical-align: top; border-bottom: #000000 1px solid;">
            <div style="color: #000000;">&#160;&#160;/s/ Allan Brett</div>
          </td>
        </tr>
        <tr>
          <td style="width: 49.55%; vertical-align: top;">&#160;</td>
          <td style="width: 7.43%; vertical-align: top;">
            <div style="text-align: right; color: #000000;">Name:</div>
          </td>
          <td style="width: 43.02%; vertical-align: top;">
            <div style="color: #000000;">&#160;&#160;Allan Brett</div>
          </td>
        </tr>
        <tr>
          <td style="width: 49.55%; vertical-align: top;">&#160;</td>
          <td style="width: 7.43%; vertical-align: top;">
            <div style="text-align: right; color: #000000;">Title:</div>
          </td>
          <td style="width: 43.02%; vertical-align: top;">
            <div style="color: #000000;">&#160;&#160;Chief Financial Officer</div>
          </td>
        </tr>

    </table>
    <div>
      <div style="text-align: right; color: #000000; font-weight: bold;">&#160;</div>
    </div>
  </div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-99.6
<SEQUENCE>6
<FILENAME>exhibit99-6.htm
<DESCRIPTION>CERTIFICATIONS OF THE CHIEF EXECUTIVE OFFICER AND CHIEF FINANCIAL OFFICER PURSUANT TO 18 U.S.C. SECTION 1350, AS ADOPTED PURSUANT TO SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002
<TEXT>
<html>
  <head>
    <title></title>
    <!-- Licensed to: morganlewis
         Document created using EDGARfilings PROfile 7.4.0.0
         Copyright 1995 - 2021 Broadridge -->
  </head>
<body style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000;" bgcolor="#ffffff">
  <div>
    <div>
      <div style="text-align: right; color: #000000; font-weight: bold;">EXHIBIT 99.6</div>
    </div>
    <div>
      <div><br>
      </div>
      <div>&#160;</div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: center; color: #000000;">CERTIFICATION PURSUANT TO</div>
      <div style="text-align: center; color: #000000;">18 U.S.C. SECTION&#160;1350,</div>
      <div style="text-align: center; color: #000000;">AS ADOPTED PURSUANT TO</div>
    </div>
    <div>
      <div style="text-align: center; color: #000000;">SECTION&#160;906 OF THE SARBANES-OXLEY ACT OF 2002</div>
      <div>&#160;</div>
    </div>
    <div>
      <div style="text-indent: 36pt; color: #000000;">In connection with the annual report of The Descartes Systems Group Inc., a Canadian company and foreign private issuer (the &#8220;<u>Company</u>&#8221;), on Form&#160;40-F for the fiscal year ended January&#160;31, 2021,
        as filed with the Securities and Exchange Commission on the date hereof (the &#8220;<u>Report</u>&#8221;), we, Edward J. Ryan and Allan Brett, do hereby certify, pursuant to 18 U.S.C. Section&#160;1350, as adopted pursuant to Section&#160;906 of the Sarbanes-Oxley Act
        of 2002, to our knowledge, that:</div>
    </div>
    <div>
      <div><br>
      </div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 5.02%; vertical-align: top;">
            <div style="color: #000000;">1.</div>
          </td>
          <td style="width: 94.98%; vertical-align: top;">
            <div style="color: #000000;">This Report fully complies with the requirements of Section&#160;13(a)&#160;or 15(d)&#160;of the Securities Exchange Act of 1934; and</div>
          </td>
        </tr>

    </table>
    <div>
      <div><br>
      </div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 5.02%; vertical-align: top;">
            <div style="color: #000000;">2.</div>
          </td>
          <td style="width: 94.98%; vertical-align: top;">
            <div style="color: #000000;">The information contained in this Report fairly presents, in all material respects, the financial condition and results of operations of the Company.</div>
          </td>
        </tr>

    </table>
    <div>
      <div><br>
      </div>
    </div>
    <table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; border-collapse: collapse; text-align: left; color: #000000;" cellpadding="0" cellspacing="0">

        <tr>
          <td style="width: 50.42%; vertical-align: top; border-bottom: #000000 1px solid;">
            <div style="color: #000000;">/s/ Edward J. Ryan</div>
          </td>
          <td style="width: 49.58%; vertical-align: top;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 50.42%; vertical-align: top;">
            <div style="color: #000000;">Edward J. Ryan</div>
          </td>
          <td style="width: 49.58%; vertical-align: top;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 50.42%; vertical-align: top;">
            <div style="color: #000000;">Chief Executive Officer</div>
          </td>
          <td style="width: 49.58%; vertical-align: top;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 50.42%; vertical-align: top;">&#160;</td>
          <td style="width: 49.58%; vertical-align: top;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 50.42%; vertical-align: top;">&#160;</td>
          <td style="width: 49.58%; vertical-align: top;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 50.42%; vertical-align: top; border-bottom: #000000 1px solid;">
            <div style="color: #000000;">/s/ Allan Brett</div>
          </td>
          <td style="width: 49.58%; vertical-align: top;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 50.42%; vertical-align: top;">
            <div style="color: #000000;">Allan Brett</div>
          </td>
          <td style="width: 49.58%; vertical-align: top;">&#160;</td>
        </tr>
        <tr>
          <td style="width: 50.42%; vertical-align: top;">
            <div style="color: #000000;">Chief Financial Officer</div>
          </td>
          <td style="width: 49.58%; vertical-align: top;">&#160;</td>
        </tr>

    </table>
    <div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="color: #000000;">April 7, 2021</div>
      <div>&#160;</div>
      <div style="color: #000000;">This certification is being submitted solely for the purpose of complying with Section&#160;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&#160;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.</div>
      <div>&#160;</div>
      <div><br>
      </div>
    </div>
    <div>
      <div><br>
      </div>
    </div>
  </div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.INS
<SEQUENCE>7
<FILENAME>dsgx-20210131.xml
<DESCRIPTION>XBRL INSTANCE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!--Generated by ThunderDome XBRL - 01:19AM UTC 2021-03-23--><xbrli:xbrl xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns="http://www.xbrl.org/2003/instance" xmlns:country="http://xbrl.sec.gov/country/2020-01-31" xmlns:currency="http://xbrl.sec.gov/currency/2020-01-31" xmlns:dei="http://xbrl.sec.gov/dei/2019-01-31" xmlns:dsgx="http://www.descartes.com/20210131" xmlns:exch="http://xbrl.sec.gov/exch/2020-01-31" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:naics="http://xbrl.sec.gov/naics/2011-01-31" xmlns:nonnum="http://www.xbrl.org/dtr/type/non-numeric" xmlns:sic="http://xbrl.sec.gov/sic/2020-01-31" xmlns:srt="http://fasb.org/srt/2020-01-31" xmlns:stpr="http://xbrl.sec.gov/stpr/2018-01-31" xmlns:thunderdome="http://www.RDGFilings.com" xmlns:us-gaap="http://fasb.org/us-gaap/2020-01-31" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <link:schemaRef xlink:href="dsgx-20210131.xsd" xlink:type="simple"/>
  <dei:AmendmentFlag contextRef="d_2020-02-01_2021-01-31" id="c-54">false</dei:AmendmentFlag>
  <dei:CurrentFiscalYearEndDate contextRef="d_2020-02-01_2021-01-31" id="c-40">--01-31</dei:CurrentFiscalYearEndDate>
  <dei:DocumentFiscalPeriodFocus contextRef="d_2020-02-01_2021-01-31" id="c-53">FY</dei:DocumentFiscalPeriodFocus>
  <dei:DocumentFiscalYearFocus contextRef="d_2020-02-01_2021-01-31" id="c-52">2021</dei:DocumentFiscalYearFocus>
  <dei:DocumentPeriodEndDate contextRef="d_2020-02-01_2021-01-31" id="c-51">2021-01-31</dei:DocumentPeriodEndDate>
  <dei:DocumentType contextRef="d_2020-02-01_2021-01-31" id="c-50">40-F</dei:DocumentType>
  <dei:EntityCentralIndexKey contextRef="d_2020-02-01_2021-01-31" id="c-39">0001050140</dei:EntityCentralIndexKey>
  <dei:EntityCommonStockSharesOutstanding contextRef="i_2021-01-31" decimals="INF" id="c-48" unitRef="xbrli-shares">84494658</dei:EntityCommonStockSharesOutstanding>
  <dei:EntityCurrentReportingStatus contextRef="d_2020-02-01_2021-01-31" id="c-42">Yes</dei:EntityCurrentReportingStatus>
  <dei:EntityEmergingGrowthCompany contextRef="d_2020-02-01_2021-01-31" id="c-45">false</dei:EntityEmergingGrowthCompany>
  <dei:EntityInteractiveDataCurrent contextRef="d_2020-02-01_2021-01-31" id="c-47">Yes</dei:EntityInteractiveDataCurrent>
  <dei:EntityRegistrantName contextRef="d_2020-02-01_2021-01-31" id="c-38">DESCARTES SYSTEMS GROUP INC</dei:EntityRegistrantName>
  <dsgx:AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145464" unitRef="iso4217-usd">64000</dsgx:AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange>
  <dsgx:AmountsRecoverableFromFundsHeldInEscrow contextRef="i_2021-01-31" decimals="-3" id="c71146419" unitRef="iso4217-usd">200000</dsgx:AmountsRecoverableFromFundsHeldInEscrow>
  <dsgx:AmountsRecoverableFromFundsHeldInEscrow contextRef="i_2020-01-31" decimals="-3" id="c71146420" unitRef="iso4217-usd">0</dsgx:AmountsRecoverableFromFundsHeldInEscrow>
  <dsgx:BaseAnnualFeePercent contextRef="d_2020-02-01_2021-01-31_AwardTypeAxis-DeferredShareUnitPlanMember" decimals="1" id="c71146164" unitRef="xbrli-pure">0.5</dsgx:BaseAnnualFeePercent>
  <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-PeoplevoxMember" decimals="-3" id="c71145153" unitRef="iso4217-usd">-42000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
  <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-KontainersMember" decimals="-3" id="c71145154" unitRef="iso4217-usd">-218000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
  <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember" decimals="-3" id="c71145155" unitRef="iso4217-usd">82000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
  <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-The2021AcquisitionsMember" decimals="-3" id="c71145156" unitRef="iso4217-usd">-178000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
  <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember" decimals="-3" id="c71152963" unitRef="iso4217-usd">1147000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
  <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember" decimals="-3" id="c71152964" unitRef="iso4217-usd">62000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
  <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-StepcomMember" decimals="-3" id="c71152965" unitRef="iso4217-usd">250000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
  <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-BesttransportMember" id="c71152966" unitRef="iso4217-usd" xs:nil="true"/>
  <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-The2020AcquisitionsMember" decimals="-3" id="c71152967" unitRef="iso4217-usd">1459000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
  <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-AljexSoftwareIncMember" decimals="-3" id="c71153155" unitRef="iso4217-usd">-152000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
  <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-VelocityMailMember" decimals="-3" id="c71153156" unitRef="iso4217-usd">-102000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
  <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-PinPointMember" decimals="-3" id="c71153157" unitRef="iso4217-usd">36000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
  <dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-The2019AcquisitionsMember" decimals="-3" id="c71153158" unitRef="iso4217-usd">-218000</dsgx:BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments>
  <dsgx:BusinessCombinationConsiderationTransferredPayable contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-PeoplevoxMember" id="c71145145" unitRef="iso4217-usd" xs:nil="true"/>
  <dsgx:BusinessCombinationConsiderationTransferredPayable contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-KontainersMember" decimals="-3" id="c71145146" unitRef="iso4217-usd">100000</dsgx:BusinessCombinationConsiderationTransferredPayable>
  <dsgx:BusinessCombinationConsiderationTransferredPayable contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember" id="c71145147" unitRef="iso4217-usd" xs:nil="true"/>
  <dsgx:BusinessCombinationConsiderationTransferredPayable contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-The2021AcquisitionsMember" decimals="-3" id="c71145148" unitRef="iso4217-usd">100000</dsgx:BusinessCombinationConsiderationTransferredPayable>
  <dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets contextRef="d_2020-06-10_2020-06-10_BusinessAcquisitionAxis-KontainersMember" id="c71146312">P2Y</dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets>
  <dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets contextRef="d_2020-11-06_2020-11-06_BusinessAcquisitionAxis-ShipTrackMember" id="c71146319">P2Y</dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets>
  <dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets contextRef="d_2019-05-10_2019-05-10_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember" id="c71146342">P2Y</dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets>
  <dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets contextRef="d_2018-08-21_2018-08-21_BusinessAcquisitionAxis-PinPointMember" id="c71146382">P2Y</dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets>
  <dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-COREKontainersAndShipTrackMember" id="c71146476">P2Y</dsgx:BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets>
  <dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation contextRef="i_2021-01-31_BusinessAcquisitionAxis-PeoplevoxMember" id="c71145177" unitRef="iso4217-usd" xs:nil="true"/>
  <dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation contextRef="i_2021-01-31_BusinessAcquisitionAxis-KontainersMember" id="c71145178" unitRef="iso4217-usd" xs:nil="true"/>
  <dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation contextRef="i_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember" decimals="-3" id="c71145179" unitRef="iso4217-usd">151000</dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation>
  <dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation contextRef="i_2021-01-31_BusinessAcquisitionAxis-The2021AcquisitionsMember" decimals="-3" id="c71145180" unitRef="iso4217-usd">151000</dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation>
  <dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation contextRef="i_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember" decimals="-3" id="c71153003" unitRef="iso4217-usd">1188000</dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation>
  <dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation contextRef="i_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember" decimals="-3" id="c71153004" unitRef="iso4217-usd">68000</dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation>
  <dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation contextRef="i_2020-01-31_BusinessAcquisitionAxis-StepcomMember" decimals="-3" id="c71153005" unitRef="iso4217-usd">232000</dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation>
  <dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation contextRef="i_2020-01-31_BusinessAcquisitionAxis-BesttransportMember" decimals="-3" id="c71153006" unitRef="iso4217-usd">194000</dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation>
  <dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation contextRef="i_2020-01-31_BusinessAcquisitionAxis-The2020AcquisitionsMember" decimals="-3" id="c71153007" unitRef="iso4217-usd">1682000</dsgx:BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation>
  <dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets contextRef="i_2021-01-31_BusinessAcquisitionAxis-PeoplevoxMember" id="c71145165" unitRef="iso4217-usd" xs:nil="true"/>
  <dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets contextRef="i_2021-01-31_BusinessAcquisitionAxis-KontainersMember" id="c71145166" unitRef="iso4217-usd" xs:nil="true"/>
  <dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets contextRef="i_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember" decimals="-3" id="c71145167" unitRef="iso4217-usd">151000</dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets>
  <dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets contextRef="i_2021-01-31_BusinessAcquisitionAxis-The2021AcquisitionsMember" decimals="-3" id="c71145168" unitRef="iso4217-usd">151000</dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets>
  <dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets contextRef="i_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember" decimals="-3" id="c71152988" unitRef="iso4217-usd">1188000</dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets>
  <dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets contextRef="i_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember" decimals="-3" id="c71152989" unitRef="iso4217-usd">68000</dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets>
  <dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets contextRef="i_2020-01-31_BusinessAcquisitionAxis-StepcomMember" decimals="-3" id="c71152990" unitRef="iso4217-usd">232000</dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets>
  <dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets contextRef="i_2020-01-31_BusinessAcquisitionAxis-BesttransportMember" decimals="-3" id="c71152991" unitRef="iso4217-usd">194000</dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets>
  <dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets contextRef="i_2020-01-31_BusinessAcquisitionAxis-The2020AcquisitionsMember" decimals="-3" id="c71152992" unitRef="iso4217-usd">1682000</dsgx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets>
  <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet contextRef="i_2021-01-31_BusinessAcquisitionAxis-PeoplevoxMember" decimals="-3" id="c71145189" unitRef="iso4217-usd">2654000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
  <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet contextRef="i_2021-01-31_BusinessAcquisitionAxis-KontainersMember" decimals="-3" id="c71145190" unitRef="iso4217-usd">838000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
  <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet contextRef="i_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember" decimals="-3" id="c71145191" unitRef="iso4217-usd">3766000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
  <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet contextRef="i_2021-01-31_BusinessAcquisitionAxis-The2021AcquisitionsMember" decimals="-3" id="c71145192" unitRef="iso4217-usd">7258000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
  <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet contextRef="i_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember" decimals="-3" id="c71153013" unitRef="iso4217-usd">-25968000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
  <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet contextRef="i_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember" decimals="-3" id="c71153014" unitRef="iso4217-usd">1225000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
  <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet contextRef="i_2020-01-31_BusinessAcquisitionAxis-StepcomMember" decimals="-3" id="c71153015" unitRef="iso4217-usd">2276000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
  <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet contextRef="i_2020-01-31_BusinessAcquisitionAxis-BesttransportMember" decimals="-3" id="c71153016" unitRef="iso4217-usd">795000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
  <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet contextRef="i_2020-01-31_BusinessAcquisitionAxis-The2020AcquisitionsMember" decimals="-3" id="c71153017" unitRef="iso4217-usd">-21672000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
  <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet contextRef="i_2019-01-31_BusinessAcquisitionAxis-AljexSoftwareIncMember" decimals="-3" id="c71153183" unitRef="iso4217-usd">4883000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
  <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet contextRef="i_2019-01-31_BusinessAcquisitionAxis-VelocityMailMember" decimals="-3" id="c71153184" unitRef="iso4217-usd">-1757000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
  <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet contextRef="i_2019-01-31_BusinessAcquisitionAxis-PinPointMember" decimals="-3" id="c71153185" unitRef="iso4217-usd">2611000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
  <dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet contextRef="i_2019-01-31_BusinessAcquisitionAxis-The2019AcquisitionsMember" decimals="-3" id="c71153186" unitRef="iso4217-usd">5737000</dsgx:BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet>
  <dsgx:CRSUAwardNonvestedNumber contextRef="i_2021-01-31" decimals="INF" id="c71145812" unitRef="xbrli-shares">38628</dsgx:CRSUAwardNonvestedNumber>
  <dsgx:CRSUAwardNonvestedWeightedAverageContractualLife contextRef="d_2020-02-01_2021-01-31" id="c71145813">P1Y182D</dsgx:CRSUAwardNonvestedWeightedAverageContractualLife>
  <dsgx:CRSUAwardsForfeitedInPeriod contextRef="d_2020-02-01_2021-01-31" decimals="INF" id="c71145808" unitRef="xbrli-shares">248</dsgx:CRSUAwardsForfeitedInPeriod>
  <dsgx:CRSUAwardsGrantsInPeriod contextRef="d_2019-02-01_2020-01-31" decimals="INF" id="c71145798" unitRef="xbrli-shares">30086</dsgx:CRSUAwardsGrantsInPeriod>
  <dsgx:CRSUAwardsGrantsInPeriod contextRef="d_2020-02-01_2021-01-31" decimals="INF" id="c71145804" unitRef="xbrli-shares">26629</dsgx:CRSUAwardsGrantsInPeriod>
  <dsgx:CRSUAwardsOutstandingNumber contextRef="i_2019-01-31" decimals="INF" id="c71145796" unitRef="xbrli-shares">45063</dsgx:CRSUAwardsOutstandingNumber>
  <dsgx:CRSUAwardsOutstandingNumber contextRef="i_2020-01-31" decimals="INF" id="c71145802" unitRef="xbrli-shares">42727</dsgx:CRSUAwardsOutstandingNumber>
  <dsgx:CRSUAwardsOutstandingNumber contextRef="i_2021-01-31" decimals="INF" id="c71145810" unitRef="xbrli-shares">38628</dsgx:CRSUAwardsOutstandingNumber>
  <dsgx:CRSUAwardsVestedAndSettledInCash contextRef="d_2019-02-01_2020-01-31" decimals="INF" id="c71145800" unitRef="xbrli-shares">32422</dsgx:CRSUAwardsVestedAndSettledInCash>
  <dsgx:CRSUAwardsVestedAndSettledInCash contextRef="d_2020-02-01_2021-01-31" decimals="INF" id="c71145806" unitRef="xbrli-shares">30340</dsgx:CRSUAwardsVestedAndSettledInCash>
  <dsgx:CRSUAwardsWeightedAverageContractualLife contextRef="d_2018-02-01_2019-01-31" id="c71145797">P1Y219D</dsgx:CRSUAwardsWeightedAverageContractualLife>
  <dsgx:CRSUAwardsWeightedAverageContractualLife contextRef="d_2019-02-01_2020-01-31" id="c71145803">P1Y219D</dsgx:CRSUAwardsWeightedAverageContractualLife>
  <dsgx:CRSUAwardsWeightedAverageContractualLife contextRef="d_2020-02-01_2021-01-31" id="c71145811">P1Y182D</dsgx:CRSUAwardsWeightedAverageContractualLife>
  <dsgx:CashSettledRestrictedShareUnitsCompensationExpense contextRef="d_2020-02-01_2021-01-31_PlanNameAxis-CashsettledRestrictedShareUnitMember" decimals="-3" id="c71146587" unitRef="iso4217-usd">1100000</dsgx:CashSettledRestrictedShareUnitsCompensationExpense>
  <dsgx:CashSettledRestrictedShareUnitsCompensationExpense contextRef="d_2019-02-01_2020-01-31_PlanNameAxis-CashsettledRestrictedShareUnitMember" decimals="-3" id="c71146588" unitRef="iso4217-usd">900000</dsgx:CashSettledRestrictedShareUnitsCompensationExpense>
  <dsgx:CashSettledRestrictedShareUnitsCompensationExpense contextRef="d_2018-02-01_2019-01-31_PlanNameAxis-CashsettledRestrictedShareUnitMember" decimals="-3" id="c71146589" unitRef="iso4217-usd">800000</dsgx:CashSettledRestrictedShareUnitsCompensationExpense>
  <dsgx:CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71146467" unitRef="iso4217-usd">1500000</dsgx:CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized>
  <dsgx:CashSettledRestrictedShareUnitsVestingPeriod contextRef="d_2020-02-01_2021-01-31_AwardTypeAxis-CashsettledRestrictedSharePlanMember_RangeAxis-MinimumMember" id="c71146166">P3Y</dsgx:CashSettledRestrictedShareUnitsVestingPeriod>
  <dsgx:CashSettledRestrictedShareUnitsVestingPeriod contextRef="d_2020-02-01_2021-01-31_AwardTypeAxis-CashsettledRestrictedSharePlanMember_RangeAxis-MaximumMember" id="c71146167">P5Y</dsgx:CashSettledRestrictedShareUnitsVestingPeriod>
  <dsgx:ContractWithCustomerAssetIncreaseDecreaseForForeignExchange contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145987" unitRef="iso4217-usd">-6000</dsgx:ContractWithCustomerAssetIncreaseDecreaseForForeignExchange>
  <dsgx:ContractWithCustomerAssetIncreaseDecreaseForForeignExchange contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145991" unitRef="iso4217-usd">26000</dsgx:ContractWithCustomerAssetIncreaseDecreaseForForeignExchange>
  <dsgx:ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145986" unitRef="iso4217-usd">791000</dsgx:ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet>
  <dsgx:ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145990" unitRef="iso4217-usd">783000</dsgx:ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet>
  <dsgx:ContractWithCustomerContractAssetBeforeAdoptionOfASC606 contextRef="i_2019-01-31" decimals="-3" id="c71145984" unitRef="iso4217-usd">812000</dsgx:ContractWithCustomerContractAssetBeforeAdoptionOfASC606>
  <dsgx:ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145975" unitRef="iso4217-usd">-407000</dsgx:ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange>
  <dsgx:ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145980" unitRef="iso4217-usd">646000</dsgx:ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange>
  <dsgx:ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145973" unitRef="iso4217-usd">37408000</dsgx:ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue>
  <dsgx:ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145978" unitRef="iso4217-usd">46386000</dsgx:ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue>
  <dsgx:CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals contextRef="d_2020-02-01_2021-01-31_RangeAxis-MinimumMember" id="c71146148">P4Y</dsgx:CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals>
  <dsgx:CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals contextRef="d_2020-02-01_2021-01-31_RangeAxis-MaximumMember" id="c71146149">P6Y</dsgx:CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals>
  <dsgx:DeferredShareUnitLiabilityNumberOfCommonShares contextRef="i_2021-01-31" decimals="INF" id="c71146469" unitRef="xbrli-shares">226525</dsgx:DeferredShareUnitLiabilityNumberOfCommonShares>
  <dsgx:DeferredShareUnitsCompensationExpense contextRef="d_2020-02-01_2021-01-31_PlanNameAxis-DeferredShareUnitPlanMember" decimals="-3" id="c71146578" unitRef="iso4217-usd">4600000</dsgx:DeferredShareUnitsCompensationExpense>
  <dsgx:DeferredShareUnitsCompensationExpense contextRef="d_2019-02-01_2020-01-31_PlanNameAxis-DeferredShareUnitPlanMember" decimals="-3" id="c71146579" unitRef="iso4217-usd">5000000</dsgx:DeferredShareUnitsCompensationExpense>
  <dsgx:DeferredShareUnitsCompensationExpense contextRef="d_2018-02-01_2019-01-31_PlanNameAxis-DeferredShareUnitPlanMember" decimals="-3" id="c71146580" unitRef="iso4217-usd">2200000</dsgx:DeferredShareUnitsCompensationExpense>
  <dsgx:DeferredShareUnitsGrantsInPeriod contextRef="d_2020-02-01_2021-01-31_PlanNameAxis-DeferredShareUnitPlanMember" decimals="INF" id="c71146574" unitRef="xbrli-shares">23369</dsgx:DeferredShareUnitsGrantsInPeriod>
  <dsgx:DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71146466" unitRef="iso4217-usd">0</dsgx:DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized>
  <dsgx:DeferredShareUnitsOutstandingNumber contextRef="i_2021-01-31_PlanNameAxis-DeferredShareUnitPlanMember" decimals="INF" id="c71146569" unitRef="xbrli-shares">226525</dsgx:DeferredShareUnitsOutstandingNumber>
  <dsgx:DeferredShareUnitsOutstandingNumber contextRef="i_2020-01-31_PlanNameAxis-DeferredShareUnitPlanMember" decimals="INF" id="c71146570" unitRef="xbrli-shares">251422</dsgx:DeferredShareUnitsOutstandingNumber>
  <dsgx:DeferredShareUnitsRedeemedAndSettledInCash contextRef="d_2020-02-01_2021-01-31_PlanNameAxis-DeferredShareUnitPlanMember" decimals="INF" id="c71146575" unitRef="xbrli-shares">48266</dsgx:DeferredShareUnitsRedeemedAndSettledInCash>
  <dsgx:DeferredTaxAssetsCorporateMinimumTaxes contextRef="i_2021-01-31" decimals="-3" id="c71145859" unitRef="iso4217-usd">1596000</dsgx:DeferredTaxAssetsCorporateMinimumTaxes>
  <dsgx:DeferredTaxAssetsCorporateMinimumTaxes contextRef="i_2020-01-31" id="c71145860" unitRef="iso4217-usd" xs:nil="true"/>
  <dsgx:DeferredTaxAssetsLiabilitesNet1 contextRef="i_2021-01-31" decimals="-3" id="c71145879" unitRef="iso4217-usd">-14168000</dsgx:DeferredTaxAssetsLiabilitesNet1>
  <dsgx:DeferredTaxAssetsLiabilitesNet1 contextRef="i_2020-01-31" decimals="-3" id="c71145880" unitRef="iso4217-usd">6535000</dsgx:DeferredTaxAssetsLiabilitesNet1>
  <dsgx:DeferredTaxAssetsNetBeforeValuationAllowance contextRef="i_2021-01-31" decimals="-3" id="c71145875" unitRef="iso4217-usd">-2803000</dsgx:DeferredTaxAssetsNetBeforeValuationAllowance>
  <dsgx:DeferredTaxAssetsNetBeforeValuationAllowance contextRef="i_2020-01-31" decimals="-3" id="c71145876" unitRef="iso4217-usd">17005000</dsgx:DeferredTaxAssetsNetBeforeValuationAllowance>
  <dsgx:DeferredTaxCharges contextRef="d_2020-02-01_2021-01-31" id="c71145082" unitRef="iso4217-usd" xs:nil="true"/>
  <dsgx:DeferredTaxCharges contextRef="d_2019-02-01_2020-01-31" id="c71145083" unitRef="iso4217-usd" xs:nil="true"/>
  <dsgx:DeferredTaxCharges contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145084" unitRef="iso4217-usd">-49000</dsgx:DeferredTaxCharges>
  <dsgx:DerivativeInstrumentCommonSharesHeldPerShare contextRef="i_2021-01-31" decimals="INF" id="c71146405" unitRef="iso4217-usd-per-xbrli-shares">25.70</dsgx:DerivativeInstrumentCommonSharesHeldPerShare>
  <dsgx:DerivativeInstrumentSharesOfCommonStockHeld contextRef="i_2021-01-31" decimals="INF" id="c71146404" unitRef="xbrli-shares">226525</dsgx:DerivativeInstrumentSharesOfCommonStockHeld>
  <dsgx:EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145904" unitRef="iso4217-usd">1289000</dsgx:EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions>
  <dsgx:EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145905" unitRef="iso4217-usd">-1042000</dsgx:EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions>
  <dsgx:EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145906" unitRef="iso4217-usd">-515000</dsgx:EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions>
  <dsgx:IncomeBeforeTaxesPercent contextRef="d_2020-02-01_2021-01-31" decimals="2" id="c71146596" unitRef="xbrli-pure">0.26</dsgx:IncomeBeforeTaxesPercent>
  <dsgx:IncomeBeforeTaxesPercent contextRef="d_2019-02-01_2020-01-31" decimals="2" id="c71146597" unitRef="xbrli-pure">0.23</dsgx:IncomeBeforeTaxesPercent>
  <dsgx:IncomeBeforeTaxesPercent contextRef="d_2018-02-01_2019-01-31" decimals="2" id="c71146598" unitRef="xbrli-pure">0.21</dsgx:IncomeBeforeTaxesPercent>
  <dsgx:IncreaseDecreaseInOperatingLeaseLiabilities contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71146041" unitRef="iso4217-usd">283000</dsgx:IncreaseDecreaseInOperatingLeaseLiabilities>
  <dsgx:IncreaseDecreaseInOperatingLeaseLiabilities contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71146042" unitRef="iso4217-usd">546000</dsgx:IncreaseDecreaseInOperatingLeaseLiabilities>
  <dsgx:IncreaseDecreaseInOperatingLeaseLiabilities contextRef="d_2018-02-01_2019-01-31" id="c71146043" unitRef="iso4217-usd" xs:nil="true"/>
  <dsgx:NetWorkingCapitalAdjustmentsReceivableFromAcquisitions contextRef="i_2021-01-31" decimals="-3" id="c71145466" unitRef="iso4217-usd">237000</dsgx:NetWorkingCapitalAdjustmentsReceivableFromAcquisitions>
  <dsgx:NetWorkingCapitalAdjustmentsReceivableFromAcquisitions contextRef="i_2020-01-31" id="c71145467" unitRef="iso4217-usd" xs:nil="true"/>
  <dsgx:OtherReceivablesTableTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-8">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 74%; text-align: left"&gt;Net working capital adjustments receivable from acquisitions&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;237&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Other receivables&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;14,593&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;7,294&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;14,830&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;7,294&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</dsgx:OtherReceivablesTableTextBlock>
  <dsgx:OtherReceivablesTextBlock contextRef="d_2020-02-01_2021-01-31" id="s1792205">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Note &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6&lt;/div&gt; &amp;#x2013; Other Receivables&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="width: 74%; text-align: left"&gt;Net working capital adjustments receivable from acquisitions&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;237&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Other receivables&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;14,593&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;7,294&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;14,830&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;7,294&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Other receivables include receivables related to sales and use taxes, income taxes, non-trade receivables and contract assets. At &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.2&lt;/div&gt; million (&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;nil&lt;/div&gt; as at &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2020) &lt;/div&gt;of the net working capital adjustments receivable from acquisitions is recoverable from amounts held in escrow related to the respective acquisitions.&lt;/div&gt;&lt;/div&gt;</dsgx:OtherReceivablesTextBlock>
  <dsgx:OverallotmentOption contextRef="d_2019-06-10_2019-06-10" decimals="2" id="c71146497" unitRef="xbrli-pure">0.15</dsgx:OverallotmentOption>
  <dsgx:ProceedsFromIssuanceOfCommonStockNet contextRef="d_2019-06-10_2019-06-10" decimals="-5" id="c71146499" unitRef="iso4217-usd">236600000</dsgx:ProceedsFromIssuanceOfCommonStockNet>
  <dsgx:ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-24">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Number of CRSUs Outstanding&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Weighted- Average Remaining Contractual Life (years)&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 74%"&gt;Balance at January 31, 2019&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;45,063&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1.6&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt"&gt;Granted&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;30,086&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt"&gt;Vested and settled in cash&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(32,422&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td&gt;Balance at January 31, 2020&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;42,727&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1.6&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt"&gt;Granted&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;26,629&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Vested and settled in cash&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(30,340&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; padding-bottom: 1pt"&gt;Forfeited&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(248&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-bottom: 1pt"&gt;Balance at January 31, 2021&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;38,628&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1.5&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-bottom: 1pt"&gt;Non-vested at January 31, 2021&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;38,628&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1.5&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</dsgx:ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock>
  <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable contextRef="i_2021-01-31_AwardTypeAxis-PerformanceSharesMember" decimals="-5" id="c71145767" unitRef="iso4217-usd">32800000</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable>
  <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable contextRef="i_2021-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="-5" id="c71145795" unitRef="iso4217-usd">21900000</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable>
  <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable contextRef="i_2021-01-31_AwardTypeAxis-PerformanceSharesMember" decimals="INF" id="c71145764" unitRef="xbrli-shares">562459</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable>
  <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable contextRef="i_2021-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c71145792" unitRef="xbrli-shares">375845</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable>
  <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue contextRef="i_2021-01-31_AwardTypeAxis-PerformanceSharesMember" decimals="INF" id="c71145765" unitRef="iso4217-usd-per-xbrli-shares">17.21</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue>
  <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue contextRef="i_2021-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c71145793" unitRef="iso4217-usd-per-xbrli-shares">16.50</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue>
  <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm contextRef="d_2020-02-01_2021-01-31_AwardTypeAxis-PerformanceSharesMember" id="c71145766">P3Y182D</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm>
  <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm contextRef="d_2020-02-01_2021-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" id="c71145794">P4Y36D</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm>
  <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue contextRef="d_2019-02-01_2020-01-31_AwardTypeAxis-PerformanceSharesMember" decimals="INF" id="c71145741" unitRef="iso4217-usd-per-xbrli-shares">23.24</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue>
  <dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue contextRef="d_2020-02-01_2021-01-31_AwardTypeAxis-PerformanceSharesMember" decimals="INF" id="c71145753" unitRef="iso4217-usd-per-xbrli-shares">29.08</dsgx:ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue>
  <dsgx:ShareCapitalTextBlock contextRef="d_2020-02-01_2021-01-31" id="s1792223">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Note &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;15&lt;/div&gt; &amp;#x2013; Share Capital&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;On &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; June 6, 2018, &lt;/div&gt;we filed a final short-form base shelf prospectus (the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;#x201c;2018&lt;/div&gt; Base Shelf Prospectus&amp;#x201d;), that allowed 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;one&lt;/div&gt; of the aforementioned common shares, preferred shares, debt securities, subscription receipts and/ or warrants offered together as a unit. These securities could have been offered separately or together, in separate series, in amounts, at prices and on terms to be set forth in &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;one&lt;/div&gt; or more shelf prospectus supplements. The aggregate initial offering price of securities that could have been sold by us (or certain of our current or future shareholders) pursuant to the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2018&lt;/div&gt; Base Shelf Prospectus during the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;25&lt;/div&gt;-month period that the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2018&lt;/div&gt; Base Shelf Prospectus, including any amendments thereto, remained valid was limited to an aggregate of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$750&lt;/div&gt; million.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;On &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; June 10, 2019, &lt;/div&gt;we completed a public offering of common shares in the United States and Canada at a price of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$35.50&lt;/div&gt; per common share pursuant to the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2018&lt;/div&gt; Base Shelf Prospectus &lt;div style="display: inline; color: black"&gt;and related prospectus supplement filed in connection with the offering (the &amp;#x201c;Offering&amp;#x201d;)&lt;/div&gt;. The total offering of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6,900,000&lt;/div&gt; common shares included the exercise in full by the underwriters of the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;15%&lt;/div&gt; over-allotment option, for aggregate gross proceeds to Descartes of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$245.0&lt;/div&gt; million. Net proceeds to Descartes were approximately &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$236.6&lt;/div&gt; million once expenses associated with the Offering were deducted inclusive of the related deferred tax benefit on share issuance costs. The &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2018&lt;/div&gt; Base Shelf Prospectus expired in &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; July 2020.&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;On &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; July 16, 2020, &lt;/div&gt;we filed a final short-form base shelf prospectus (the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;#x201c;2020&lt;/div&gt; Base Shelf Prospectus&amp;#x201d;), allowing us to offer and issue the following securities: (i) common shares; (ii) preferred shares; (iii) senior or subordinated unsecured debt securities; (iv) subscription receipts; (v) warrants; and (vi) securities comprised of more than &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;one&lt;/div&gt; of the aforementioned common shares, preferred shares, debt securities, subscription receipts and/ or warrants offered together as a unit. These securities &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; may &lt;/div&gt;be offered separately or together, in separate series, in amounts, at prices and on terms to be set forth in &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;one&lt;/div&gt; or more shelf prospectus supplements. The aggregate initial offering price of securities that &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; may &lt;/div&gt;be sold by us (or certain of our current or future shareholders) pursuant to the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&lt;/div&gt; Base Shelf Prospectus during the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;25&lt;/div&gt;-month period that the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&lt;/div&gt; Base Shelf Prospectus, including any amendments thereto, remains valid is limited to an aggregate of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$1&lt;/div&gt; billion. &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;No&lt;/div&gt; securities have yet been sold pursuant to the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&lt;/div&gt; Base Shelf Prospectus.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 29 --&gt;   &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;The following table sets forth the common shares outstanding (number of shares in thousands):&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom"&gt;  &lt;td style="font-style: italic"&gt;(thousands of shares)&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2019&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="width: 61%; text-align: left"&gt;Balance, beginning of year&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;84,156&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;76,865&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;76,773&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt"&gt;Shares issued:&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 20pt; text-align: left"&gt;Stock options and share units exercised&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;338&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;95&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;46&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 20pt"&gt;Issuance of common shares&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6,900&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 20pt; text-align: left; padding-bottom: 1pt"&gt;Acquisitions (Note 3)&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;296&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;46&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Balance, end of year&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;84,494&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;84,156&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;76,865&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Cash flows provided from stock options and share units exercised &lt;div style="display: inline; color: black"&gt;during &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2021,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt; were approximately &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$6.2&lt;/div&gt; million, &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$1.5&lt;/div&gt; million and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.5&lt;/div&gt; million, respectively.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</dsgx:ShareCapitalTextBlock>
  <dsgx:ShelfProspectusMaximumAmount contextRef="i_2018-06-06_SubsidiarySaleOfStockAxis-ShelfProspectusMember" decimals="-5" id="c71146493" unitRef="iso4217-usd">750000000</dsgx:ShelfProspectusMaximumAmount>
  <dsgx:ShelfProspectusMaximumAmount contextRef="i_2020-07-16_SubsidiarySaleOfStockAxis-The2020BaseShelfProspectusMember" decimals="-5" id="c71146507" unitRef="iso4217-usd">1000000000</dsgx:ShelfProspectusMaximumAmount>
  <dsgx:ShelfProspectusPeriod contextRef="d_2018-06-06_2018-06-06_SubsidiarySaleOfStockAxis-ShelfProspectusMember" id="c71146491">P2Y30D</dsgx:ShelfProspectusPeriod>
  <dsgx:ShelfProspectusPeriod contextRef="d_2020-07-16_2020-07-16_SubsidiarySaleOfStockAxis-The2020BaseShelfProspectusMember" id="c71146505">P2Y30D</dsgx:ShelfProspectusPeriod>
  <dsgx:StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145578" unitRef="xbrli-shares">338000</dsgx:StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised>
  <dsgx:StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145579" unitRef="xbrli-shares">95000</dsgx:StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised>
  <dsgx:StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145580" unitRef="xbrli-shares">46000</dsgx:StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised>
  <srt:ScheduleOfCondensedCashFlowStatementTableTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-11">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-weight: bold; text-align: right; border-bottom: Black 1pt solid"&gt;2021&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="text-align: right; border-bottom: Black 1pt solid"&gt;2020&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 74%"&gt;Balance at beginning of period&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;523,690&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;378,178&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Acquisition of Visual Compliance&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;118,785&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt"&gt;Acquisition of CORE&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12,670&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt"&gt;Acquisition of STEPcom&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;10,019&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt"&gt;Acquisition of BestTransport&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5,513&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt"&gt;Acquisition of Peoplevox&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;15,182&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt"&gt;Acquisition of Kontainers&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,461&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt"&gt;Acquisition of ShipTrack&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;10,327&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt"&gt;Adjustments on account of foreign exchange&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12,517&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,475&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-bottom: 1pt"&gt;Balance at end of period&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;565,177&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;523,690&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</srt:ScheduleOfCondensedCashFlowStatementTableTextBlock>
  <us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock contextRef="d_2020-02-01_2021-01-31" id="s1792214">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Note &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;11&lt;/div&gt; - Accrued Liabilities&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td colspan="3" style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td colspan="3" style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom"&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td colspan="3" style="text-align: right; border-bottom: Black 1pt solid"&gt;2020&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="width: 74%; text-align: left"&gt;Accrued compensation and benefits&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;24,643&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;20,613&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left"&gt;Accrued professional fees&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,188&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,010&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Other accrued liabilities&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;13,048&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;13,253&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;38,879&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;34,876&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;Other accrued liabilities include accrued expenses related to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;third&lt;/div&gt; party resellers and royalties, suppliers, accrued restructuring charges and accrued contingent acquisition purchase consideration.&lt;/div&gt;&lt;/div&gt;</us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock>
  <us-gaap:AccountsPayableCurrent contextRef="i_2021-01-31" decimals="-3" id="c71144885" unitRef="iso4217-usd">7955000</us-gaap:AccountsPayableCurrent>
  <us-gaap:AccountsPayableCurrent contextRef="i_2020-01-31" decimals="-3" id="c71144886" unitRef="iso4217-usd">7667000</us-gaap:AccountsPayableCurrent>
  <us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-7">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Provision for Credit Losses&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 85%; text-indent: -0.5in; padding-left: 0.5in"&gt;Balance at January 31, 2020&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,003&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt"&gt;Current period provision for expected losses&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,681&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt"&gt;Write-offs charged against the provision&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,418&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt"&gt;Effect of movements in foreign exchange&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;64&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Balance at January 31, 2021&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,330&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock>
  <us-gaap:AccountsReceivableGrossCurrent contextRef="i_2021-01-31" decimals="-3" id="c71145455" unitRef="iso4217-usd">39536000</us-gaap:AccountsReceivableGrossCurrent>
  <us-gaap:AccountsReceivableGrossCurrent contextRef="i_2020-01-31" decimals="-3" id="c71145456" unitRef="iso4217-usd">37121000</us-gaap:AccountsReceivableGrossCurrent>
  <us-gaap:AccountsReceivableNetCurrent contextRef="i_2021-01-31" decimals="-3" id="c71145459" unitRef="iso4217-usd">37206000</us-gaap:AccountsReceivableNetCurrent>
  <us-gaap:AccountsReceivableNetCurrent contextRef="i_2020-01-31" decimals="-3" id="c71145460" unitRef="iso4217-usd">35118000</us-gaap:AccountsReceivableNetCurrent>
  <us-gaap:AccruedIncomeTaxesCurrent contextRef="i_2021-01-31" decimals="-3" id="c71144891" unitRef="iso4217-usd">3383000</us-gaap:AccruedIncomeTaxesCurrent>
  <us-gaap:AccruedIncomeTaxesCurrent contextRef="i_2020-01-31" decimals="-3" id="c71144892" unitRef="iso4217-usd">1329000</us-gaap:AccruedIncomeTaxesCurrent>
  <us-gaap:AccruedIncomeTaxesNoncurrent contextRef="i_2021-01-31" decimals="-3" id="c71144903" unitRef="iso4217-usd">8230000</us-gaap:AccruedIncomeTaxesNoncurrent>
  <us-gaap:AccruedIncomeTaxesNoncurrent contextRef="i_2020-01-31" decimals="-3" id="c71144904" unitRef="iso4217-usd">6470000</us-gaap:AccruedIncomeTaxesNoncurrent>
  <us-gaap:AccruedLiabilitiesCurrent contextRef="i_2021-01-31" decimals="-3" id="c71145548" unitRef="iso4217-usd">38879000</us-gaap:AccruedLiabilitiesCurrent>
  <us-gaap:AccruedLiabilitiesCurrent contextRef="i_2020-01-31" decimals="-3" id="c71145549" unitRef="iso4217-usd">34876000</us-gaap:AccruedLiabilitiesCurrent>
  <us-gaap:AccruedProfessionalFeesCurrent contextRef="i_2021-01-31" decimals="-3" id="c71145544" unitRef="iso4217-usd">1188000</us-gaap:AccruedProfessionalFeesCurrent>
  <us-gaap:AccruedProfessionalFeesCurrent contextRef="i_2020-01-31" decimals="-3" id="c71145545" unitRef="iso4217-usd">1010000</us-gaap:AccruedProfessionalFeesCurrent>
  <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment contextRef="i_2021-01-31_PropertyPlantAndEquipmentByTypeAxis-ComputerEquipmentMember" decimals="-3" id="c71145484" unitRef="iso4217-usd">28123000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
  <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment contextRef="i_2020-01-31_PropertyPlantAndEquipmentByTypeAxis-ComputerEquipmentMember" decimals="-3" id="c71145485" unitRef="iso4217-usd">23730000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
  <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment contextRef="i_2021-01-31_PropertyPlantAndEquipmentByTypeAxis-FurnitureAndFixturesMember" decimals="-3" id="c71145486" unitRef="iso4217-usd">1081000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
  <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment contextRef="i_2020-01-31_PropertyPlantAndEquipmentByTypeAxis-FurnitureAndFixturesMember" decimals="-3" id="c71145487" unitRef="iso4217-usd">816000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
  <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment contextRef="i_2021-01-31_PropertyPlantAndEquipmentByTypeAxis-LeaseholdImprovementsMember" decimals="-3" id="c71145488" unitRef="iso4217-usd">401000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
  <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment contextRef="i_2020-01-31_PropertyPlantAndEquipmentByTypeAxis-LeaseholdImprovementsMember" decimals="-3" id="c71145489" unitRef="iso4217-usd">290000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
  <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment contextRef="i_2021-01-31_PropertyPlantAndEquipmentByTypeAxis-EquipmentInstalledWithCustomersMember" decimals="-3" id="c71145490" unitRef="iso4217-usd">728000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
  <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment contextRef="i_2020-01-31_PropertyPlantAndEquipmentByTypeAxis-EquipmentInstalledWithCustomersMember" decimals="-3" id="c71145491" unitRef="iso4217-usd">203000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
  <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment contextRef="i_2021-01-31" decimals="-3" id="c71145492" unitRef="iso4217-usd">30333000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
  <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment contextRef="i_2020-01-31" decimals="-3" id="c71145493" unitRef="iso4217-usd">25039000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
  <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax contextRef="i_2021-01-31" decimals="-3" id="c71144913" unitRef="iso4217-usd">-1189000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
  <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax contextRef="i_2020-01-31" decimals="-3" id="c71144914" unitRef="iso4217-usd">-25944000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
  <us-gaap:AdditionalPaidInCapitalCommonStock contextRef="i_2021-01-31" decimals="-3" id="c71144911" unitRef="iso4217-usd">464102000</us-gaap:AdditionalPaidInCapitalCommonStock>
  <us-gaap:AdditionalPaidInCapitalCommonStock contextRef="i_2020-01-31" decimals="-3" id="c71144912" unitRef="iso4217-usd">459269000</us-gaap:AdditionalPaidInCapitalCommonStock>
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="d_2020-02-01_2021-01-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c71152790" unitRef="iso4217-usd">6313000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="d_2019-02-01_2020-01-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c71152791" unitRef="iso4217-usd">4909000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="d_2018-02-01_2019-01-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c71152792" unitRef="iso4217-usd">3710000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2020-02-01_2021-01-31_IncomeStatementLocationAxis-CostOfSalesMember" decimals="-3" id="c71145613" unitRef="iso4217-usd">319000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2019-02-01_2020-01-31_IncomeStatementLocationAxis-CostOfSalesMember" decimals="-3" id="c71145614" unitRef="iso4217-usd">220000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2018-02-01_2019-01-31_IncomeStatementLocationAxis-CostOfSalesMember" decimals="-3" id="c71145615" unitRef="iso4217-usd">160000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2020-02-01_2021-01-31_IncomeStatementLocationAxis-SellingAndMarketingExpenseMember" decimals="-3" id="c71145616" unitRef="iso4217-usd">896000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2019-02-01_2020-01-31_IncomeStatementLocationAxis-SellingAndMarketingExpenseMember" decimals="-3" id="c71145617" unitRef="iso4217-usd">706000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2018-02-01_2019-01-31_IncomeStatementLocationAxis-SellingAndMarketingExpenseMember" decimals="-3" id="c71145618" unitRef="iso4217-usd">436000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2020-02-01_2021-01-31_IncomeStatementLocationAxis-ResearchAndDevelopmentExpenseMember" decimals="-3" id="c71145619" unitRef="iso4217-usd">404000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2019-02-01_2020-01-31_IncomeStatementLocationAxis-ResearchAndDevelopmentExpenseMember" decimals="-3" id="c71145620" unitRef="iso4217-usd">281000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2018-02-01_2019-01-31_IncomeStatementLocationAxis-ResearchAndDevelopmentExpenseMember" decimals="-3" id="c71145621" unitRef="iso4217-usd">184000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2020-02-01_2021-01-31_IncomeStatementLocationAxis-GeneralAndAdministrativeExpenseMember" decimals="-3" id="c71145622" unitRef="iso4217-usd">4694000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2019-02-01_2020-01-31_IncomeStatementLocationAxis-GeneralAndAdministrativeExpenseMember" decimals="-3" id="c71145623" unitRef="iso4217-usd">3702000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2018-02-01_2019-01-31_IncomeStatementLocationAxis-GeneralAndAdministrativeExpenseMember" decimals="-3" id="c71145624" unitRef="iso4217-usd">2930000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145625" unitRef="iso4217-usd">6313000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145626" unitRef="iso4217-usd">4909000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145627" unitRef="iso4217-usd">3710000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent contextRef="i_2020-01-31" decimals="-3" id="c71145461" unitRef="iso4217-usd">2003000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
  <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent contextRef="i_2021-01-31" decimals="-3" id="c71145465" unitRef="iso4217-usd">2330000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
  <us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145463" unitRef="iso4217-usd">1418000</us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs>
  <us-gaap:AmortizationOfIntangibleAssets contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145070" unitRef="iso4217-usd">55905000</us-gaap:AmortizationOfIntangibleAssets>
  <us-gaap:AmortizationOfIntangibleAssets contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145071" unitRef="iso4217-usd">55485000</us-gaap:AmortizationOfIntangibleAssets>
  <us-gaap:AmortizationOfIntangibleAssets contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145072" unitRef="iso4217-usd">40179000</us-gaap:AmortizationOfIntangibleAssets>
  <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="d_2020-02-01_2021-01-31_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis-EmployeeStockOptionMember" decimals="INF" id="c71146519" unitRef="xbrli-shares">1750</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
  <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="d_2019-02-01_2020-01-31_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis-EmployeeStockOptionMember" decimals="INF" id="c71146520" unitRef="xbrli-shares">350464</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
  <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="d_2018-02-01_2019-01-31_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis-EmployeeStockOptionMember" decimals="INF" id="c71146521" unitRef="xbrli-shares">271869</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
  <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="d_2020-02-01_2021-01-31_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis-StockOptionsTreasuryStockMethodMember" decimals="INF" id="c71146524" unitRef="xbrli-shares">71161</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
  <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="d_2019-02-01_2020-01-31_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis-StockOptionsTreasuryStockMethodMember" decimals="INF" id="c71146525" unitRef="xbrli-shares">5909</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
  <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="d_2018-02-01_2019-01-31_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis-StockOptionsTreasuryStockMethodMember" decimals="INF" id="c71146526" unitRef="xbrli-shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
  <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="d_2020-02-01_2021-01-31_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis-PSUsAndRSUsMember" decimals="INF" id="c71146529" unitRef="xbrli-shares">43002</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
  <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="d_2019-02-01_2020-01-31_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis-PSUsAndRSUsMember" decimals="INF" id="c71146530" unitRef="xbrli-shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
  <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="d_2018-02-01_2019-01-31_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis-PSUsAndRSUsMember" decimals="INF" id="c71146531" unitRef="xbrli-shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
  <us-gaap:Assets contextRef="i_2021-01-31" decimals="-3" id="c71144883" unitRef="iso4217-usd">1063254000</us-gaap:Assets>
  <us-gaap:Assets contextRef="i_2020-01-31" decimals="-3" id="c71144884" unitRef="iso4217-usd">942586000</us-gaap:Assets>
  <us-gaap:AssetsCurrent contextRef="i_2021-01-31" decimals="-3" id="c71144869" unitRef="iso4217-usd">203065000</us-gaap:AssetsCurrent>
  <us-gaap:AssetsCurrent contextRef="i_2020-01-31" decimals="-3" id="c71144870" unitRef="iso4217-usd">100210000</us-gaap:AssetsCurrent>
  <us-gaap:BasisOfAccountingPolicyPolicyTextBlock contextRef="d_2020-02-01_2021-01-31" id="c71152858">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;The accompanying consolidated financial statements are presented in United States (&amp;#x201c;US&amp;#x201d;) dollars and are prepared in accordance with generally accepted accounting principles in the US (&amp;#x201c;GAAP&amp;#x201d;) and the rules and regulations of the Canadian Securities Administrators and the US Securities and Exchange Commission (&amp;#x201c;SEC&amp;#x201d;) for the preparation of consolidated financial statements.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;The world continues to experience a global pandemic related to the spread of the COVID-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;19&lt;/div&gt; virus (the &amp;#x201c;Pandemic&amp;#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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; may &lt;/div&gt;be impacted by the Pandemic include, but are &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; limited to; revenue recognition, impairment of goodwill and intangible assets and provisions for credit losses.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Our fiscal year commences on &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 1&lt;/div&gt;&lt;div style="display: inline; bottom:.33em; font-size: 82%; position: relative; vertical-align: baseline;"&gt;st&lt;/div&gt; of each year and ends on &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31&lt;/div&gt;&lt;div style="display: inline; bottom:.33em; font-size: 82%; position: relative; vertical-align: baseline;"&gt;st&lt;/div&gt; of the following year. Our fiscal year, which ends on &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021, &lt;/div&gt;is referred to as the &amp;#x201c;current fiscal year&amp;#x201d;, &amp;#x201c;fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2021&amp;#x201d;,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;#x201c;2021&amp;#x201d;&lt;/div&gt; or using similar words. Our previous fiscal year, which ended on &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2020, &lt;/div&gt;is referred to as the &amp;#x201c;previous fiscal year&amp;#x201d;, &amp;#x201c;fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&amp;#x201d;,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;#x201c;2020&amp;#x201d;&lt;/div&gt; or using similar words. Other fiscal years are referenced by the applicable year during which the fiscal year ends. For example, &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;#x201c;2022&amp;#x201d;&lt;/div&gt; refers to the annual period ending &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2022 &lt;/div&gt;and the &amp;#x201c;fourth quarter of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2022&amp;#x201d;&lt;/div&gt; refers to the quarter ending &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2022.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:BasisOfAccountingPolicyPolicyTextBlock>
  <us-gaap:BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued contextRef="d_2019-02-12_2019-02-12_BusinessAcquisitionAxis-VisualComplianceMember" decimals="-5" id="c71146333" unitRef="xbrli-shares">300000</us-gaap:BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued>
  <us-gaap:BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued contextRef="d_2018-08-21_2018-08-21_BusinessAcquisitionAxis-PinPointMember" decimals="-5" id="c71146379" unitRef="xbrli-shares">100000</us-gaap:BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued>
  <us-gaap:BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued contextRef="d_2020-02-01_2021-01-31" id="c71145584" unitRef="xbrli-shares" xs:nil="true"/>
  <us-gaap:BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145585" unitRef="xbrli-shares">296000</us-gaap:BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued>
  <us-gaap:BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145586" unitRef="xbrli-shares">46000</us-gaap:BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued>
  <us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic contextRef="d_2020-02-01_2021-01-31" decimals="INF" id="c71145440" unitRef="iso4217-usd-per-xbrli-shares">0.61</us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic>
  <us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic contextRef="d_2019-02-01_2020-01-31" decimals="INF" id="c71145441" unitRef="iso4217-usd-per-xbrli-shares">0.41</us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic>
  <us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic contextRef="d_2018-02-01_2019-01-31" decimals="INF" id="c71145442" unitRef="iso4217-usd-per-xbrli-shares">0.33</us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic>
  <us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted contextRef="d_2020-02-01_2021-01-31" decimals="INF" id="c71145443" unitRef="iso4217-usd-per-xbrli-shares">0.60</us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted>
  <us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted contextRef="d_2019-02-01_2020-01-31" decimals="INF" id="c71145444" unitRef="iso4217-usd-per-xbrli-shares">0.41</us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted>
  <us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted contextRef="d_2018-02-01_2019-01-31" decimals="INF" id="c71145445" unitRef="iso4217-usd-per-xbrli-shares">0.33</us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted>
  <us-gaap:BusinessAcquisitionProFormaInformationTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-4">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-style: italic"&gt;Year Ended&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2019&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 61%; font-weight: normal"&gt;Revenues&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;354,461&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;341,376&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;328,824&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-weight: normal; text-align: left"&gt;Net income&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;51,302&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;33,727&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;25,370&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-weight: normal"&gt;Earnings per share&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt"&gt;Basic&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;0.61&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;0.41&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;0.33&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt"&gt;Diluted&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;0.60&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;0.41&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;0.33&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:BusinessAcquisitionProFormaInformationTextBlock>
  <us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145437" unitRef="iso4217-usd">51302000</us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss>
  <us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145438" unitRef="iso4217-usd">33727000</us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss>
  <us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145439" unitRef="iso4217-usd">25370000</us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss>
  <us-gaap:BusinessAcquisitionsProFormaRevenue contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145434" unitRef="iso4217-usd">354461000</us-gaap:BusinessAcquisitionsProFormaRevenue>
  <us-gaap:BusinessAcquisitionsProFormaRevenue contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145435" unitRef="iso4217-usd">341376000</us-gaap:BusinessAcquisitionsProFormaRevenue>
  <us-gaap:BusinessAcquisitionsProFormaRevenue contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145436" unitRef="iso4217-usd">328824000</us-gaap:BusinessAcquisitionsProFormaRevenue>
  <us-gaap:BusinessCombinationAcquiredReceivablesEstimatedUncollectible contextRef="i_2019-02-12_BusinessAcquisitionAxis-VisualComplianceMember" decimals="-5" id="c71146337" unitRef="iso4217-usd">1200000</us-gaap:BusinessCombinationAcquiredReceivablesEstimatedUncollectible>
  <us-gaap:BusinessCombinationAcquiredReceivablesEstimatedUncollectible contextRef="i_2019-06-27_BusinessAcquisitionAxis-StepcomMember" decimals="-5" id="c71146353" unitRef="iso4217-usd">100000</us-gaap:BusinessCombinationAcquiredReceivablesEstimatedUncollectible>
  <us-gaap:BusinessCombinationAcquiredReceivablesFairValue contextRef="i_2020-02-21_BusinessAcquisitionAxis-PeoplevoxMember" decimals="-5" id="c71146306" unitRef="iso4217-usd">400000</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
  <us-gaap:BusinessCombinationAcquiredReceivablesFairValue contextRef="i_2020-06-10_BusinessAcquisitionAxis-KontainersMember" decimals="-5" id="c71146315" unitRef="iso4217-usd">200000</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
  <us-gaap:BusinessCombinationAcquiredReceivablesFairValue contextRef="i_2020-11-06_BusinessAcquisitionAxis-ShipTrackMember" decimals="-5" id="c71146322" unitRef="iso4217-usd">1700000</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
  <us-gaap:BusinessCombinationAcquiredReceivablesFairValue contextRef="i_2019-02-12_BusinessAcquisitionAxis-VisualComplianceMember" decimals="-5" id="c71146335" unitRef="iso4217-usd">5200000</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
  <us-gaap:BusinessCombinationAcquiredReceivablesFairValue contextRef="i_2019-05-10_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember" decimals="-5" id="c71146345" unitRef="iso4217-usd">400000</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
  <us-gaap:BusinessCombinationAcquiredReceivablesFairValue contextRef="i_2019-06-27_BusinessAcquisitionAxis-StepcomMember" decimals="-5" id="c71146351" unitRef="iso4217-usd">800000</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
  <us-gaap:BusinessCombinationAcquiredReceivablesFairValue contextRef="i_2019-08-20_BusinessAcquisitionAxis-BesttransportMember" decimals="-5" id="c71146358" unitRef="iso4217-usd">600000</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
  <us-gaap:BusinessCombinationAcquiredReceivablesFairValue contextRef="i_2018-02-02_BusinessAcquisitionAxis-AljexSoftwareIncMember" decimals="-5" id="c71146367" unitRef="iso4217-usd">200000</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
  <us-gaap:BusinessCombinationAcquiredReceivablesFairValue contextRef="i_2018-06-22_BusinessAcquisitionAxis-VelocityMailMember" decimals="-5" id="c71146373" unitRef="iso4217-usd">1000000</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
  <us-gaap:BusinessCombinationAcquiredReceivablesFairValue contextRef="i_2018-08-21_BusinessAcquisitionAxis-PinPointMember" decimals="-5" id="c71146385" unitRef="iso4217-usd">500000</us-gaap:BusinessCombinationAcquiredReceivablesFairValue>
  <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount contextRef="i_2020-02-21_BusinessAcquisitionAxis-PeoplevoxMember" decimals="-5" id="c71146305" unitRef="iso4217-usd">400000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
  <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount contextRef="i_2020-06-10_BusinessAcquisitionAxis-KontainersMember" decimals="-5" id="c71146314" unitRef="iso4217-usd">200000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
  <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount contextRef="i_2020-11-06_BusinessAcquisitionAxis-ShipTrackMember" decimals="-5" id="c71146321" unitRef="iso4217-usd">1700000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
  <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount contextRef="i_2019-02-12_BusinessAcquisitionAxis-VisualComplianceMember" decimals="-5" id="c71146334" unitRef="iso4217-usd">6400000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
  <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount contextRef="i_2019-05-10_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember" decimals="-5" id="c71146344" unitRef="iso4217-usd">400000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
  <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount contextRef="i_2019-06-27_BusinessAcquisitionAxis-StepcomMember" decimals="-5" id="c71146350" unitRef="iso4217-usd">900000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
  <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount contextRef="i_2019-08-20_BusinessAcquisitionAxis-BesttransportMember" decimals="-5" id="c71146357" unitRef="iso4217-usd">600000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
  <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount contextRef="i_2018-02-02_BusinessAcquisitionAxis-AljexSoftwareIncMember" decimals="-5" id="c71146366" unitRef="iso4217-usd">200000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
  <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount contextRef="i_2018-06-22_BusinessAcquisitionAxis-VelocityMailMember" decimals="-5" id="c71146372" unitRef="iso4217-usd">1000000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
  <us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount contextRef="i_2018-08-21_BusinessAcquisitionAxis-PinPointMember" decimals="-5" id="c71146384" unitRef="iso4217-usd">500000</us-gaap:BusinessCombinationAcquiredReceivablesGrossContractualAmount>
  <us-gaap:BusinessCombinationAcquisitionRelatedCosts contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-The2021AcquisitionsMember" decimals="-5" id="c71146325" unitRef="iso4217-usd">800000</us-gaap:BusinessCombinationAcquisitionRelatedCosts>
  <us-gaap:BusinessCombinationAcquisitionRelatedCosts contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145993" unitRef="iso4217-usd">1981000</us-gaap:BusinessCombinationAcquisitionRelatedCosts>
  <us-gaap:BusinessCombinationAcquisitionRelatedCosts contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145994" unitRef="iso4217-usd">3457000</us-gaap:BusinessCombinationAcquisitionRelatedCosts>
  <us-gaap:BusinessCombinationAcquisitionRelatedCosts contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145995" unitRef="iso4217-usd">3187000</us-gaap:BusinessCombinationAcquisitionRelatedCosts>
  <us-gaap:BusinessCombinationConsiderationTransferred1 contextRef="d_2018-08-21_2018-08-21_BusinessAcquisitionAxis-PinPointMember" decimals="-5" id="c71146377" unitRef="iso4217-usd">11000000</us-gaap:BusinessCombinationConsiderationTransferred1>
  <us-gaap:BusinessCombinationConsiderationTransferred1 contextRef="d_2018-08-21_2018-08-21_BusinessAcquisitionAxis-PinPointMember" decimals="-5" id="c71146378" unitRef="iso4217-cad">14400000</us-gaap:BusinessCombinationConsiderationTransferred1>
  <us-gaap:BusinessCombinationConsiderationTransferred1 contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-PeoplevoxMember" decimals="-3" id="c71145157" unitRef="iso4217-usd">24095000</us-gaap:BusinessCombinationConsiderationTransferred1>
  <us-gaap:BusinessCombinationConsiderationTransferred1 contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-KontainersMember" decimals="-3" id="c71145158" unitRef="iso4217-usd">6533000</us-gaap:BusinessCombinationConsiderationTransferred1>
  <us-gaap:BusinessCombinationConsiderationTransferred1 contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember" decimals="-3" id="c71145159" unitRef="iso4217-usd">21936000</us-gaap:BusinessCombinationConsiderationTransferred1>
  <us-gaap:BusinessCombinationConsiderationTransferred1 contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-The2021AcquisitionsMember" decimals="-3" id="c71145160" unitRef="iso4217-usd">52564000</us-gaap:BusinessCombinationConsiderationTransferred1>
  <us-gaap:BusinessCombinationConsiderationTransferred1 contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember" decimals="-3" id="c71152968" unitRef="iso4217-usd">250055000</us-gaap:BusinessCombinationConsiderationTransferred1>
  <us-gaap:BusinessCombinationConsiderationTransferred1 contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember" decimals="-3" id="c71152969" unitRef="iso4217-usd">23345000</us-gaap:BusinessCombinationConsiderationTransferred1>
  <us-gaap:BusinessCombinationConsiderationTransferred1 contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-StepcomMember" decimals="-3" id="c71152970" unitRef="iso4217-usd">18889000</us-gaap:BusinessCombinationConsiderationTransferred1>
  <us-gaap:BusinessCombinationConsiderationTransferred1 contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-BesttransportMember" decimals="-3" id="c71152971" unitRef="iso4217-usd">11718000</us-gaap:BusinessCombinationConsiderationTransferred1>
  <us-gaap:BusinessCombinationConsiderationTransferred1 contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-The2020AcquisitionsMember" decimals="-3" id="c71152972" unitRef="iso4217-usd">304007000</us-gaap:BusinessCombinationConsiderationTransferred1>
  <us-gaap:BusinessCombinationConsiderationTransferred1 contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-AljexSoftwareIncMember" decimals="-3" id="c71153159" unitRef="iso4217-usd">32230000</us-gaap:BusinessCombinationConsiderationTransferred1>
  <us-gaap:BusinessCombinationConsiderationTransferred1 contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-VelocityMailMember" decimals="-3" id="c71153160" unitRef="iso4217-usd">26005000</us-gaap:BusinessCombinationConsiderationTransferred1>
  <us-gaap:BusinessCombinationConsiderationTransferred1 contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-PinPointMember" decimals="-3" id="c71153161" unitRef="iso4217-usd">11729000</us-gaap:BusinessCombinationConsiderationTransferred1>
  <us-gaap:BusinessCombinationConsiderationTransferred1 contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-The2019AcquisitionsMember" decimals="-3" id="c71153162" unitRef="iso4217-usd">69964000</us-gaap:BusinessCombinationConsiderationTransferred1>
  <us-gaap:BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember" decimals="-3" id="c71152953" unitRef="iso4217-usd">9045000</us-gaap:BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable>
  <us-gaap:BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember" id="c71152954" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-StepcomMember" id="c71152955" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-BesttransportMember" id="c71152956" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-The2020AcquisitionsMember" decimals="-3" id="c71152957" unitRef="iso4217-usd">9045000</us-gaap:BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable>
  <us-gaap:BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-AljexSoftwareIncMember" id="c71153147" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-VelocityMailMember" id="c71153148" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-PinPointMember" decimals="-3" id="c71153149" unitRef="iso4217-usd">1536000</us-gaap:BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable>
  <us-gaap:BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-The2019AcquisitionsMember" decimals="-3" id="c71153150" unitRef="iso4217-usd">1536000</us-gaap:BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable>
  <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-PeoplevoxMember" id="c71145149" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-KontainersMember" decimals="-3" id="c71145150" unitRef="iso4217-usd">1414000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
  <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember" decimals="-3" id="c71145151" unitRef="iso4217-usd">2825000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
  <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-The2021AcquisitionsMember" decimals="-3" id="c71145152" unitRef="iso4217-usd">4239000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
  <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember" id="c71152958" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember" decimals="-3" id="c71152959" unitRef="iso4217-usd">1450000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
  <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-StepcomMember" id="c71152960" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-BesttransportMember" id="c71152961" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-The2020AcquisitionsMember" decimals="-3" id="c71152962" unitRef="iso4217-usd">1450000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
  <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-AljexSoftwareIncMember" id="c71153151" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-VelocityMailMember" id="c71153152" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-PinPointMember" decimals="-3" id="c71153153" unitRef="iso4217-usd">714000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
  <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-The2019AcquisitionsMember" decimals="-3" id="c71153154" unitRef="iso4217-usd">714000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
  <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1 contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145996" unitRef="iso4217-usd">-1946000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
  <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1 contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145997" unitRef="iso4217-usd">340000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
  <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1 contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145998" unitRef="iso4217-usd">591000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
  <us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh contextRef="i_2020-06-10_BusinessAcquisitionAxis-KontainersMember" decimals="-5" id="c71146311" unitRef="iso4217-usd">6000000</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh>
  <us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh contextRef="i_2020-11-06_BusinessAcquisitionAxis-ShipTrackMember" decimals="-5" id="c71146318" unitRef="iso4217-usd">25000000</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh>
  <us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh contextRef="i_2019-05-10_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember" decimals="-5" id="c71146341" unitRef="iso4217-usd">9000000</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh>
  <us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh contextRef="i_2018-08-21_BusinessAcquisitionAxis-PinPointMember" decimals="-5" id="c71146380" unitRef="iso4217-usd">2300000</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh>
  <us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh contextRef="i_2018-08-21_BusinessAcquisitionAxis-PinPointMember" decimals="-5" id="c71146381" unitRef="iso4217-cad">3000000</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh>
  <us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh contextRef="i_2020-01-31_BusinessAcquisitionAxis-COREKontainersAndShipTrackMember" decimals="-3" id="c71146475" unitRef="iso4217-usd">31600000</us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh>
  <us-gaap:BusinessCombinationContingentConsiderationLiability contextRef="i_2020-06-10_BusinessAcquisitionAxis-KontainersMember" decimals="-5" id="c71146313" unitRef="iso4217-usd">1400000</us-gaap:BusinessCombinationContingentConsiderationLiability>
  <us-gaap:BusinessCombinationContingentConsiderationLiability contextRef="i_2020-11-06_BusinessAcquisitionAxis-ShipTrackMember" decimals="-5" id="c71146320" unitRef="iso4217-usd">2800000</us-gaap:BusinessCombinationContingentConsiderationLiability>
  <us-gaap:BusinessCombinationContingentConsiderationLiability contextRef="i_2019-05-10_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember" decimals="-5" id="c71146343" unitRef="iso4217-usd">1500000</us-gaap:BusinessCombinationContingentConsiderationLiability>
  <us-gaap:BusinessCombinationContingentConsiderationLiability contextRef="i_2018-08-21_BusinessAcquisitionAxis-PinPointMember" decimals="-5" id="c71146383" unitRef="iso4217-usd">700000</us-gaap:BusinessCombinationContingentConsiderationLiability>
  <us-gaap:BusinessCombinationContingentConsiderationLiability contextRef="i_2020-01-31_BusinessAcquisitionAxis-COREKontainersAndShipTrackMember" decimals="-3" id="c71146477" unitRef="iso4217-usd">4700000</us-gaap:BusinessCombinationContingentConsiderationLiability>
  <us-gaap:BusinessCombinationDisclosureTextBlock contextRef="d_2020-02-01_2021-01-31" id="s1792191">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Note &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3&lt;/div&gt; &amp;#x2013; Acquisitions&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2021&lt;/div&gt; Acquisitions&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;On &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 21, 2020, &lt;/div&gt;Descartes acquired all of the shares of Peoplevox Limited (&amp;#x201c;Peoplevox&amp;#x201d;), a UK-based provider of cloud-based ecommerce warehouse management solutions. The purchase price for the acquisition was approximately &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$24.1&lt;/div&gt; million, net of cash acquired, which was funded from a combination of cash on hand and drawing on Descartes' existing credit facility. The gross contractual amount of trade receivables acquired was &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.4&lt;/div&gt; million with a fair value of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.4&lt;/div&gt; million at the date of acquisition. Our acquisition date estimate of contractual cash flows &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; expected to be collected was nominal. The purchase price was finalized in the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt; month period ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021 &lt;/div&gt;with &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;no&lt;/div&gt; adjustments.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;On &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; June 10, 2020 &lt;/div&gt;Descartes acquired all of the shares of Cracking Logistics Limited (&amp;#x201c;Kontainers&amp;#x201d;), a UK-based provider of client-facing digital freight execution platforms. The purchase price for the acquisition was approximately &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$5.2&lt;/div&gt; million, net of cash acquired, which was funded from cash on hand. Additional contingent consideration of up to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$6.0&lt;/div&gt; million in cash is payable if certain revenue performance targets are met by Kontainers in the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;two&lt;/div&gt; years following the acquisition. The fair value of the contingent consideration was valued at &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$1.4&lt;/div&gt; million at the acquisition date. The gross contractual amount of trade receivables acquired was &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.2&lt;/div&gt; million with a fair value of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.2&lt;/div&gt; million at the date of acquisition. Our acquisition date estimate of contractual cash flows &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; June 10, 2021.&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;On &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; November 6, 2020, &lt;/div&gt;Descartes acquired all of the shares of ShipTrack Inc. (&amp;#x201c;ShipTrack&amp;#x201d;), a provider of cloud-based mobile resource management and shipment tracking solutions. The purchase price for the acquisition was approximately &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$19.0&lt;/div&gt; million, net of cash acquired, which was funded from cash on hand. Additional contingent consideration of up to CAD &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;25.0&lt;/div&gt; million in cash is payable if certain revenue performance targets are met by ShipTrack in the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;two&lt;/div&gt; years following the acquisition. The fair value of the contingent consideration was valued at &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$2.8&lt;/div&gt; million at the acquisition date. The gross contractual amount of trade receivables acquired was &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$1.7&lt;/div&gt; million with a fair value of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$1.7&lt;/div&gt; million at the date of acquisition. Our acquisition date estimate of contractual cash flows &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; 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, deferred revenue as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; November 6, 2021.&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;For the businesses acquired during fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2021,&lt;/div&gt; we incurred acquisition-related costs of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.8&lt;/div&gt; million for the year ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021. &lt;/div&gt;The acquisition-related costs were primarily for advisory services and are included in other charges in our consolidated statements of operations. For the year ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021, &lt;/div&gt;we have recognized &lt;div style="display: inline; color: black"&gt;aggregate revenues of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$9.4&lt;/div&gt; million, and net income (excluding any interest costs on financing the a&lt;/div&gt;cquisition) of nominal from Peoplevox, Kontainers and ShipTrack since the date of acquisition in our consolidated statements of operations.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 17 --&gt;    &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;The final purchase price allocation for Peoplevox and the preliminary purchase price allocations for Kontainers and ShipTrack, which have &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; been finalized, are as follows:&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Peoplevox&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Kontainers&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;ShipTrack&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Total&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td&gt;Purchase price consideration:&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-indent: -10pt; width: 48%; text-align: left; padding-left: 20pt"&gt;Cash, less cash acquired related to Peoplevox ($1,634), Kontainers (overdraft of $13) and ShipTrack ($529)&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;24,137&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5,237&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;19,029&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;48,403&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left; padding-left: 10pt"&gt;Consideration payable&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;100&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;100&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left; padding-left: 10pt"&gt;Contingent consideration&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,414&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,825&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4,239&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left; padding-bottom: 1pt; padding-left: 10pt"&gt;Net working capital adjustments (receivable) / payable&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(42&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(218&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;82&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(178&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;24,095&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6,533&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;21,936&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;52,564&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left"&gt;Allocated to:&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left; padding-left: 10pt"&gt;Current assets, excluding cash acquired&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;485&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;253&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,846&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,584&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left; padding-left: 10pt"&gt;Right-of-use assets&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;151&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;151&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left; padding-left: 10pt"&gt;Current liabilities&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(776&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(989&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(668&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(2,433&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left; padding-left: 10pt"&gt;Deferred revenue&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(748&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(102&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(204&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,054&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left; padding-left: 10pt"&gt;Lease obligations&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(151&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(151&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left; padding-left: 10pt"&gt;Deferred income tax liability&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,615&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(4,012&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(5,627&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-bottom: 1pt; padding-left: 10pt"&gt;Debt&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(728&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(728&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left"&gt;Net tangible assets (liabilities) assumed&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(2,654&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(838&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(3,766&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(7,258&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left"&gt;Finite life intangible assets acquired:&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Customer agreements and relationships&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,631&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;800&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,905&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8,336&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Existing technology&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;7,651&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,000&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;11,102&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;21,753&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left; padding-left: 10pt"&gt;Trade names&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;30&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;77&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;107&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left; padding-left: 10pt"&gt;Non-compete covenants&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;285&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;80&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;291&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;656&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-bottom: 1pt"&gt;Goodwill&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;15,182&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,461&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;10,327&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;28,970&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;24,095&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6,533&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;21,936&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;52,564&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;The above transactions were accounted for using the acquisition method in accordance with ASC Topic &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;805,&lt;/div&gt; &amp;#x201c;Business Combinations&amp;#x201d;. The purchase price allocations in the table above represents our estimates of the allocation of the purchase price and the fair value of net assets acquired. The preliminary purchase price allocations &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; may &lt;/div&gt;differ from the final purchase price allocations, and these differences &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; may &lt;/div&gt;be material. Revisions to the allocation will occur as additional information about the fair value of assets and liabilities becomes available. The final purchase price allocation will be completed within &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;one&lt;/div&gt; year from the acquisition date.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;The acquired intangible assets are being amortized over their estimated useful lives as follows:&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Peoplevox&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Kontainers&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;ShipTrack&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="width: 61%; text-align: left"&gt;Customer agreements and relationships (years)&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;10&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;13&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left"&gt;Existing technology (years)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left"&gt;Trade names (years)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;N/A&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left"&gt;Non-compete covenants (years)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; deductible for tax purposes.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 18 --&gt;   &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&lt;/div&gt; Acquisitions&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;On &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 12, 2019, &lt;/div&gt;Descartes acquired substantially all of the assets of the businesses run by the Management Systems Resources Inc. group of companies (collectively, &amp;#x201c;Visual Compliance&amp;#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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$248.9&lt;/div&gt; million, net of cash acquired, which was funded from a combination of drawing on Descartes' existing credit facility and issuing to the sellers &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;0.3&lt;/div&gt; million Descartes common shares from treasury. The gross contractual amount of trade receivables acquired was &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$6.4&lt;/div&gt; million with a fair value of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$5.2&lt;/div&gt; million at the date of acquisition. Our acquisition date estimate of contractual cash flows &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; expected to be collected was &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$1.2&lt;/div&gt; million. The purchase price was finalized in the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt; month period ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2020 &lt;/div&gt;with &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;no&lt;/div&gt; adjustments.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;On &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; May 10, 2019, &lt;/div&gt;Descartes acquired all the shares of Core Transport Technologies NZ Limited (&amp;#x201c;CORE&amp;#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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$21.8&lt;/div&gt; million, net of cash acquired, which was funded from drawing on Descartes' existing credit facility. Additional contingent consideration of up to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$9.0&lt;/div&gt; million in cash is payable if certain revenue performance targets are met by CORE in the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;two&lt;/div&gt; years following the acquisition. The fair value of the contingent consideration was valued at &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$1.5&lt;/div&gt; million at the acquisition date. The gross contractual amount of trade receivables acquired was &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.4&lt;/div&gt; million with a fair value of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.4&lt;/div&gt; million at the date of acquisition. Our acquisition date estimate of contractual cash flows &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; expected to be collected was nominal. The purchase price was finalized in the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt; month period ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; April 30, 2020 &lt;/div&gt;with &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;no&lt;/div&gt; adjustments.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;On &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; June 27, 2019, &lt;/div&gt;Descartes acquired all the shares of Tegmento AG and Contentis AG (collectively, &amp;#x201c;STEPcom&amp;#x201d;), a business-to-business supply chain integration network based in Switzerland. The purchase price for the acquisition was approximately &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$18.6&lt;/div&gt; million, net of cash acquired, which was funded from drawing on Descartes' existing credit facility. The gross contractual amount of trade receivables acquired was &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.9&lt;/div&gt; million with a fair value of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.8&lt;/div&gt; million at the date of acquisition. Our acquisition date estimate of contractual cash flows &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; expected to be collected was &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.1&lt;/div&gt; million. The purchase price was finalized in the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt; month period ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; July 31, 2020 &lt;/div&gt;with &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;no&lt;/div&gt; adjustments.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;On &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; August 20, 2019, &lt;/div&gt;Descartes acquired BestTransport.com, Inc. (&amp;#x201c;BestTransport&amp;#x201d;), a cloud-based transportation management system provider focused on flatbed-intensive manufacturers and distributors. The purchase price for the acquisition was approximately &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$11.7&lt;/div&gt; million, net of cash acquired, which was funded from drawing on Descartes' existing credit facility. The gross contractual amount of trade receivables acquired was &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.6&lt;/div&gt; million with a fair value of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.6&lt;/div&gt; million at the date of acquisition. Our acquisition date estimate of contractual cash flows &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; expected to be collected was nominal. The purchase price was finalized in the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt; month period ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; July 31, 2020 &lt;/div&gt;with &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;no&lt;/div&gt; adjustments.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt;  &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 19 --&gt;   &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;The final purchase price allocations for businesses we acquired during &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&lt;/div&gt; are as follows:&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td colspan="3" style="font-weight: bold; text-align: right; border-bottom: Black 1pt solid"&gt;Visual Compliance&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td colspan="3" style="text-align: right; border-bottom: Black 1pt solid"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;CORE&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td colspan="3" style="text-align: right; border-bottom: Black 1pt solid"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;STEP-com&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td colspan="3" style="text-align: right; border-bottom: Black 1pt solid"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Best-Transport&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td colspan="3" style="text-align: right; border-bottom: Black 1pt solid"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Total&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td&gt;Purchase price consideration:&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-indent: -10pt; padding-left: 20pt; width: 35%; text-align: left"&gt;Cash, less cash acquired related to Visual Compliance ($170), CORE ($213), STEPcom ($2,700) and BestTransport ($507)&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;239,863&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;21,833&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;18,639&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;11,718&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;292,053&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt"&gt;Common shares issued&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;9,045&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;9,045&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Contingent consideration&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,450&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,450&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt"&gt;Net working capital adjustments payable / (receivable)&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,147&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;62&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;250&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,459&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;250,055&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;23,345&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;18,889&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;11,718&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;304,007&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left"&gt;Allocated to:&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Current assets, excluding cash acquired&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6,403&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;689&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,470&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;815&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;9,377&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Property and equipment&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;30&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,048&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;257&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;35&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,370&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Deferred income tax asset&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;30,924&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;30,924&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Right-of-use assets&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,188&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;68&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;232&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;194&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,682&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Current liabilities&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(840&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(352&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(874&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(284&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(2,350&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Deferred revenue&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(10,267&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(278&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(813&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(9&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(11,367&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Lease obligations&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,188&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(68&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(232&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(194&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,682&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt"&gt;Deferred income tax liability&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(282&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(3,332&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(2,316&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,352&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(7,282&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Net tangible assets (liabilities) assumed&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;25,968&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,225&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(2,276&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(795&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;21,672&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left"&gt;Finite life intangible assets acquired:&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Customer agreements and relationships&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;32,186&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4,600&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;10,839&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,000&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;50,625&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Existing technology&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;69,422&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6,800&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,800&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;80,022&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Trade names&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;528&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;200&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;102&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;50&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;880&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Non-compete covenants&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,166&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;300&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;205&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;150&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,821&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-bottom: 1pt"&gt;Goodwill&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;118,785&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12,670&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;10,019&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5,513&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;146,987&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;250,055&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;23,345&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;18,889&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;11,718&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;304,007&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;The acquired intangible assets are being amortized over their estimated useful lives as follows:&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;/div&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Visual Compliance&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;/div&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;CORE&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;/div&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;/div&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;STEPcom&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;/div&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Best Transport&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="width: 46%; text-align: left"&gt;Customer agreements and relationships (years)&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 12%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;14&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;13&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;9&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left"&gt;Existing technology (years)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;7&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;N/A&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left"&gt;Trade names (years)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left"&gt;Non-compete covenants (years)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; deductible for tax purposes. The goodwill from the Visual Compliance acquisition is deductible for tax purposes.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 20 --&gt;   &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt; Acquisitions&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;On &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 2, 2018, &lt;/div&gt;Descartes acquired Aljex Software, Inc. (&amp;#x201c;Aljex&amp;#x201d;), a cloud-based provider of back-office transportation management solutions for freight brokers and transportation providers. US-based Aljex helps customers automate business processes and create electronic documents critical for executing transportation moves through the lifecycle of a shipment. The purchase price for the acquisition was approximately &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$32.4&lt;/div&gt; million, net of cash acquired, which was funded from drawing on Descartes' existing credit facility. The gross contractual amount of trade receivables acquired was &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.2&lt;/div&gt; million with a fair value of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.2&lt;/div&gt; million at the date of acquisition. Our acquisition date estimate of contractual cash flows &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; expected to be collected was nominal. The purchase price was finalized in the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt; month period ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2019 &lt;/div&gt;with &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;no&lt;/div&gt; adjustments.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;On &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; June 22, 2018, &lt;/div&gt;Descartes acquired certain assets of Velocity Mail, LLC (&amp;#x201c;Velocity Mail&amp;#x201d;), an electronic transportation network that provides global air carriers with mail and parcel shipment scanning and tracking solutions. Using US-based Velocity Mail's network, global air carriers leverage mobile devices to accurately track shipments and deliveries in real-time. The purchase price for the acquisition was approximately &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$26.1&lt;/div&gt; million, net of cash acquired, which was funded from drawing on Descartes' existing credit facility. The gross contractual amount of trade receivables acquired was &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$1.0&lt;/div&gt; million with a fair value of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$1.0&lt;/div&gt; million at the date of acquisition. Our acquisition date estimate of contractual cash flows &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; expected to be collected was nominal. The purchase price was finalized in the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt; month period ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; July 31, 2019 &lt;/div&gt;with &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;no&lt;/div&gt; adjustments.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; color: black"&gt;On &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; August 21, 2018, &lt;/div&gt;Descartes acquired PinPoint GPS Solutions Inc. (&amp;#x201c;PinPoint&amp;#x201d;), a provider of fleet tracking and mobile workforce solutions. Canada-based PinPoint helps customers collect real-time location information on trucks and mobile workers using technology, including Geotab (telematics) and SkyBitz (trailer tracking). The purchase price for the acquisition was approximately &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$11.0&lt;/div&gt; million &lt;/div&gt;(CAD &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$14.4&lt;/div&gt; million)&lt;div style="display: inline; color: black"&gt;, net of cash acquired, which was funded from a combination of drawing on Descartes' existing credit facility and issuing to the sellers less than &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;0.1&lt;/div&gt; million Descartes common shares from treasury. &lt;/div&gt;Additional contingent consideration of up to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$2.3&lt;/div&gt; million (CAD &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$3.0&lt;/div&gt; million) in cash is payable if certain revenue performance targets are met by PinPoint in the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;two&lt;/div&gt; years following the acquisition. The fair value of the contingent consideration was valued at &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.7&lt;/div&gt; million at the acquisition date. The gross contractual amount of trade receivables acquired was &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.5&lt;/div&gt; million with a fair value of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.5&lt;/div&gt; million at the date of acquisition. Our acquisition date estimate of contractual cash flows &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; expected to be collected was nominal. The purchase price was finalized in the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt; month period ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; July 31, 2019 &lt;/div&gt;with &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;no&lt;/div&gt; adjustments.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt;   &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;The final purchase price allocations for businesses we acquired during &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt; are as follows:&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Aljex&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Velocity Mail&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;PinPoint&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Total&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td&gt;Purchase price consideration:&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="width: 48%; text-align: left; padding-left: 10pt"&gt;Cash, less cash acquired related to Aljex ($193), Velocity Mail (nil) and PinPoint ($769)&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;32,382&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;26,107&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;9,443&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;67,932&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt"&gt;Common shares issued&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,536&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,536&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left; padding-left: 10pt"&gt;Contingent consideration&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;714&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;714&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left; padding-bottom: 1pt; padding-left: 10pt"&gt;Net working capital adjustments (receivable) / payable&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(152&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(102&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;36&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(218&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;32,230&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;26,005&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;11,729&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;69,964&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left"&gt;Allocated to:&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left; padding-left: 10pt"&gt;Current assets, excluding cash acquired&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;607&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,407&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;599&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,613&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left; padding-left: 10pt"&gt;Other long-term assets&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;501&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;501&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left; padding-left: 10pt"&gt;Current liabilities&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(266&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(81&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(559&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(906&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left; padding-left: 10pt"&gt;Deferred revenue&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,024&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(70&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(574&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,668&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left; padding-bottom: 1pt; padding-left: 10pt"&gt;Deferred income tax liability&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(4,200&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(2,077&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(6,277&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left; padding-left: 0pt"&gt;Net tangible (liabilities) assets assumed&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(4,883&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,757&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(2,611&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(5,737&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left"&gt;Finite life intangible assets acquired:&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Customer agreements and relationships&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5,300&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;7,800&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;7,758&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;20,858&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Existing technology&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12,400&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;7,600&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;20,000&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt"&gt;Tradenames&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;280&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;100&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;207&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;587&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left; padding-left: 10pt"&gt;Non-compete covenants&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;230&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;300&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;69&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;599&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-bottom: 1pt"&gt;Goodwill&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;18,903&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8,448&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6,306&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;33,657&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;32,230&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;26,005&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;11,729&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;69,964&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;The acquired intangible assets are being amortized over their estimated useful lives as follows:&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Aljex&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Velocity Mail&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;PinPoint&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="width: 61%; text-align: left"&gt;Customer agreements and relationships (years)&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;13&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;9&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left"&gt;Existing technology (years)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;N/A&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left"&gt;Trade names (years)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left"&gt;Non-compete covenants (years)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;The goodwill on the Aljex, Velocity Mail and PinPoint acquisitions arose as a result of the combined strategic value to our growth plan. The goodwill arising from the Aljex and PinPoint acquisitions is &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; deductible for tax purposes. The goodwill from the Velocity Mail acquisition is deductible for tax purposes.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Pro Forma Results of Operations (Unaudited)&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;The financial information in the table below summarizes selected results of operations on a pro forma basis as if we had acquired ShipTrack, Kontainers, Peoplevox, BestTransport, STEPcom, CORE, Visual Compliance, PinPoint, Velocity Mail and Aljex as of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 1, 2018.&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;This pro forma information is for information purposes only and does &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; purport to represent what our actual results of operations for the periods presented would have been had the acquisitions of ShipTrack, Kontainers, Peoplevox, BestTransport, STEPcom, CORE, Visual Compliance, PinPoint, Velocity Mail and Aljex occurred at &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 1, 2018, &lt;/div&gt;or to project our results of operations for any future period.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 22 --&gt;   &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td style="font-style: italic"&gt;Year Ended&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom"&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2019&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="width: 61%; font-weight: normal"&gt;Revenues&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;354,461&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;341,376&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;328,824&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="font-weight: normal; text-align: left"&gt;Net income&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;51,302&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;33,727&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;25,370&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="font-weight: normal"&gt;Earnings per share&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt"&gt;Basic&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;0.61&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;0.41&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;0.33&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt"&gt;Diluted&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;0.60&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;0.41&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;0.33&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt;&lt;/div&gt;</us-gaap:BusinessCombinationDisclosureTextBlock>
  <us-gaap:BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-The2021AcquisitionsMember" decimals="-5" id="c71146326" unitRef="iso4217-usd">9400000</us-gaap:BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets contextRef="i_2021-01-31_BusinessAcquisitionAxis-PeoplevoxMember" decimals="-3" id="c71145161" unitRef="iso4217-usd">485000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets contextRef="i_2021-01-31_BusinessAcquisitionAxis-KontainersMember" decimals="-3" id="c71145162" unitRef="iso4217-usd">253000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets contextRef="i_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember" decimals="-3" id="c71145163" unitRef="iso4217-usd">1846000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets contextRef="i_2021-01-31_BusinessAcquisitionAxis-The2021AcquisitionsMember" decimals="-3" id="c71145164" unitRef="iso4217-usd">2584000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets contextRef="i_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember" decimals="-3" id="c71152973" unitRef="iso4217-usd">6403000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets contextRef="i_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember" decimals="-3" id="c71152974" unitRef="iso4217-usd">689000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets contextRef="i_2020-01-31_BusinessAcquisitionAxis-StepcomMember" decimals="-3" id="c71152975" unitRef="iso4217-usd">1470000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets contextRef="i_2020-01-31_BusinessAcquisitionAxis-BesttransportMember" decimals="-3" id="c71152976" unitRef="iso4217-usd">815000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets contextRef="i_2020-01-31_BusinessAcquisitionAxis-The2020AcquisitionsMember" decimals="-3" id="c71152977" unitRef="iso4217-usd">9377000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets contextRef="i_2019-01-31_BusinessAcquisitionAxis-AljexSoftwareIncMember" decimals="-3" id="c71153163" unitRef="iso4217-usd">607000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets contextRef="i_2019-01-31_BusinessAcquisitionAxis-VelocityMailMember" decimals="-3" id="c71153164" unitRef="iso4217-usd">1407000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets contextRef="i_2019-01-31_BusinessAcquisitionAxis-PinPointMember" decimals="-3" id="c71153165" unitRef="iso4217-usd">599000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets contextRef="i_2019-01-31_BusinessAcquisitionAxis-The2019AcquisitionsMember" decimals="-3" id="c71153166" unitRef="iso4217-usd">2613000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities contextRef="i_2021-01-31_BusinessAcquisitionAxis-PeoplevoxMember" decimals="-3" id="c71145169" unitRef="iso4217-usd">776000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities contextRef="i_2021-01-31_BusinessAcquisitionAxis-KontainersMember" decimals="-3" id="c71145170" unitRef="iso4217-usd">989000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities contextRef="i_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember" decimals="-3" id="c71145171" unitRef="iso4217-usd">668000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities contextRef="i_2021-01-31_BusinessAcquisitionAxis-The2021AcquisitionsMember" decimals="-3" id="c71145172" unitRef="iso4217-usd">2433000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities contextRef="i_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember" decimals="-3" id="c71152993" unitRef="iso4217-usd">840000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities contextRef="i_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember" decimals="-3" id="c71152994" unitRef="iso4217-usd">352000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities contextRef="i_2020-01-31_BusinessAcquisitionAxis-StepcomMember" decimals="-3" id="c71152995" unitRef="iso4217-usd">874000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities contextRef="i_2020-01-31_BusinessAcquisitionAxis-BesttransportMember" decimals="-3" id="c71152996" unitRef="iso4217-usd">284000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities contextRef="i_2020-01-31_BusinessAcquisitionAxis-The2020AcquisitionsMember" decimals="-3" id="c71152997" unitRef="iso4217-usd">2350000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities contextRef="i_2019-01-31_BusinessAcquisitionAxis-AljexSoftwareIncMember" decimals="-3" id="c71153171" unitRef="iso4217-usd">266000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities contextRef="i_2019-01-31_BusinessAcquisitionAxis-VelocityMailMember" decimals="-3" id="c71153172" unitRef="iso4217-usd">81000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities contextRef="i_2019-01-31_BusinessAcquisitionAxis-PinPointMember" decimals="-3" id="c71153173" unitRef="iso4217-usd">559000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities contextRef="i_2019-01-31_BusinessAcquisitionAxis-The2019AcquisitionsMember" decimals="-3" id="c71153174" unitRef="iso4217-usd">906000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue contextRef="i_2021-01-31_BusinessAcquisitionAxis-PeoplevoxMember" decimals="-3" id="c71145173" unitRef="iso4217-usd">748000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue contextRef="i_2021-01-31_BusinessAcquisitionAxis-KontainersMember" decimals="-3" id="c71145174" unitRef="iso4217-usd">102000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue contextRef="i_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember" decimals="-3" id="c71145175" unitRef="iso4217-usd">204000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue contextRef="i_2021-01-31_BusinessAcquisitionAxis-The2021AcquisitionsMember" decimals="-3" id="c71145176" unitRef="iso4217-usd">1054000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue contextRef="i_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember" decimals="-3" id="c71152998" unitRef="iso4217-usd">10267000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue contextRef="i_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember" decimals="-3" id="c71152999" unitRef="iso4217-usd">278000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue contextRef="i_2020-01-31_BusinessAcquisitionAxis-StepcomMember" decimals="-3" id="c71153000" unitRef="iso4217-usd">813000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue contextRef="i_2020-01-31_BusinessAcquisitionAxis-BesttransportMember" decimals="-3" id="c71153001" unitRef="iso4217-usd">9000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue contextRef="i_2020-01-31_BusinessAcquisitionAxis-The2020AcquisitionsMember" decimals="-3" id="c71153002" unitRef="iso4217-usd">11367000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue contextRef="i_2019-01-31_BusinessAcquisitionAxis-AljexSoftwareIncMember" decimals="-3" id="c71153175" unitRef="iso4217-usd">1024000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue contextRef="i_2019-01-31_BusinessAcquisitionAxis-VelocityMailMember" decimals="-3" id="c71153176" unitRef="iso4217-usd">70000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue contextRef="i_2019-01-31_BusinessAcquisitionAxis-PinPointMember" decimals="-3" id="c71153177" unitRef="iso4217-usd">574000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue contextRef="i_2019-01-31_BusinessAcquisitionAxis-The2019AcquisitionsMember" decimals="-3" id="c71153178" unitRef="iso4217-usd">1668000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets contextRef="i_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember" decimals="-3" id="c71152983" unitRef="iso4217-usd">30924000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets contextRef="i_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember" id="c71152984" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets contextRef="i_2020-01-31_BusinessAcquisitionAxis-StepcomMember" id="c71152985" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets contextRef="i_2020-01-31_BusinessAcquisitionAxis-BesttransportMember" id="c71152986" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets contextRef="i_2020-01-31_BusinessAcquisitionAxis-The2020AcquisitionsMember" decimals="-3" id="c71152987" unitRef="iso4217-usd">30924000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities contextRef="i_2021-01-31_BusinessAcquisitionAxis-PeoplevoxMember" decimals="-3" id="c71145181" unitRef="iso4217-usd">1615000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities contextRef="i_2021-01-31_BusinessAcquisitionAxis-KontainersMember" id="c71145182" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities contextRef="i_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember" decimals="-3" id="c71145183" unitRef="iso4217-usd">4012000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities contextRef="i_2021-01-31_BusinessAcquisitionAxis-The2021AcquisitionsMember" decimals="-3" id="c71145184" unitRef="iso4217-usd">5627000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities contextRef="i_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember" decimals="-3" id="c71153008" unitRef="iso4217-usd">282000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities contextRef="i_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember" decimals="-3" id="c71153009" unitRef="iso4217-usd">3332000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities contextRef="i_2020-01-31_BusinessAcquisitionAxis-StepcomMember" decimals="-3" id="c71153010" unitRef="iso4217-usd">2316000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities contextRef="i_2020-01-31_BusinessAcquisitionAxis-BesttransportMember" decimals="-3" id="c71153011" unitRef="iso4217-usd">1352000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities contextRef="i_2020-01-31_BusinessAcquisitionAxis-The2020AcquisitionsMember" decimals="-3" id="c71153012" unitRef="iso4217-usd">7282000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities contextRef="i_2019-01-31_BusinessAcquisitionAxis-AljexSoftwareIncMember" decimals="-3" id="c71153179" unitRef="iso4217-usd">4200000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities contextRef="i_2019-01-31_BusinessAcquisitionAxis-VelocityMailMember" id="c71153180" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities contextRef="i_2019-01-31_BusinessAcquisitionAxis-PinPointMember" decimals="-3" id="c71153181" unitRef="iso4217-usd">2077000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities contextRef="i_2019-01-31_BusinessAcquisitionAxis-The2019AcquisitionsMember" decimals="-3" id="c71153182" unitRef="iso4217-usd">6277000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities contextRef="i_2021-01-31_BusinessAcquisitionAxis-PeoplevoxMember" id="c71145185" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities contextRef="i_2021-01-31_BusinessAcquisitionAxis-KontainersMember" id="c71145186" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities contextRef="i_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember" decimals="-3" id="c71145187" unitRef="iso4217-usd">728000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities contextRef="i_2021-01-31_BusinessAcquisitionAxis-The2021AcquisitionsMember" decimals="-3" id="c71145188" unitRef="iso4217-usd">728000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2021-01-31_BusinessAcquisitionAxis-PeoplevoxMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" decimals="-3" id="c71145193" unitRef="iso4217-usd">3631000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2021-01-31_BusinessAcquisitionAxis-KontainersMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" decimals="-3" id="c71145194" unitRef="iso4217-usd">800000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" decimals="-3" id="c71145195" unitRef="iso4217-usd">3905000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2021-01-31_BusinessAcquisitionAxis-The2021AcquisitionsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" decimals="-3" id="c71145196" unitRef="iso4217-usd">8336000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2021-01-31_BusinessAcquisitionAxis-PeoplevoxMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember" decimals="-3" id="c71145197" unitRef="iso4217-usd">7651000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2021-01-31_BusinessAcquisitionAxis-KontainersMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember" decimals="-3" id="c71145198" unitRef="iso4217-usd">3000000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember" decimals="-3" id="c71145199" unitRef="iso4217-usd">11102000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2021-01-31_BusinessAcquisitionAxis-The2021AcquisitionsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember" decimals="-3" id="c71145200" unitRef="iso4217-usd">21753000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2021-01-31_BusinessAcquisitionAxis-PeoplevoxMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember" id="c71145201" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2021-01-31_BusinessAcquisitionAxis-KontainersMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember" decimals="-3" id="c71145202" unitRef="iso4217-usd">30000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember" decimals="-3" id="c71145203" unitRef="iso4217-usd">77000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2021-01-31_BusinessAcquisitionAxis-The2021AcquisitionsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember" decimals="-3" id="c71145204" unitRef="iso4217-usd">107000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2021-01-31_BusinessAcquisitionAxis-PeoplevoxMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" decimals="-3" id="c71145205" unitRef="iso4217-usd">285000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2021-01-31_BusinessAcquisitionAxis-KontainersMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" decimals="-3" id="c71145206" unitRef="iso4217-usd">80000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" decimals="-3" id="c71145207" unitRef="iso4217-usd">291000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2021-01-31_BusinessAcquisitionAxis-The2021AcquisitionsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" decimals="-3" id="c71145208" unitRef="iso4217-usd">656000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" decimals="-3" id="c71153018" unitRef="iso4217-usd">32186000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" decimals="-3" id="c71153019" unitRef="iso4217-usd">4600000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2020-01-31_BusinessAcquisitionAxis-StepcomMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" decimals="-3" id="c71153020" unitRef="iso4217-usd">10839000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2020-01-31_BusinessAcquisitionAxis-BesttransportMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" decimals="-3" id="c71153021" unitRef="iso4217-usd">3000000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2020-01-31_BusinessAcquisitionAxis-The2020AcquisitionsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" decimals="-3" id="c71153022" unitRef="iso4217-usd">50625000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember" decimals="-3" id="c71153023" unitRef="iso4217-usd">69422000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember" decimals="-3" id="c71153024" unitRef="iso4217-usd">6800000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2020-01-31_BusinessAcquisitionAxis-StepcomMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember" id="c71153025" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2020-01-31_BusinessAcquisitionAxis-BesttransportMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember" decimals="-3" id="c71153026" unitRef="iso4217-usd">3800000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2020-01-31_BusinessAcquisitionAxis-The2020AcquisitionsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember" decimals="-3" id="c71153027" unitRef="iso4217-usd">80022000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember" decimals="-3" id="c71153028" unitRef="iso4217-usd">528000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember" decimals="-3" id="c71153029" unitRef="iso4217-usd">200000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2020-01-31_BusinessAcquisitionAxis-StepcomMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember" decimals="-3" id="c71153030" unitRef="iso4217-usd">102000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2020-01-31_BusinessAcquisitionAxis-BesttransportMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember" decimals="-3" id="c71153031" unitRef="iso4217-usd">50000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2020-01-31_BusinessAcquisitionAxis-The2020AcquisitionsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember" decimals="-3" id="c71153032" unitRef="iso4217-usd">880000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" decimals="-3" id="c71153033" unitRef="iso4217-usd">3166000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" decimals="-3" id="c71153034" unitRef="iso4217-usd">300000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2020-01-31_BusinessAcquisitionAxis-StepcomMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" decimals="-3" id="c71153035" unitRef="iso4217-usd">205000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2020-01-31_BusinessAcquisitionAxis-BesttransportMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" decimals="-3" id="c71153036" unitRef="iso4217-usd">150000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2020-01-31_BusinessAcquisitionAxis-The2020AcquisitionsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" decimals="-3" id="c71153037" unitRef="iso4217-usd">3821000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2019-01-31_BusinessAcquisitionAxis-AljexSoftwareIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" decimals="-3" id="c71153187" unitRef="iso4217-usd">5300000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2019-01-31_BusinessAcquisitionAxis-VelocityMailMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" decimals="-3" id="c71153188" unitRef="iso4217-usd">7800000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2019-01-31_BusinessAcquisitionAxis-PinPointMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" decimals="-3" id="c71153189" unitRef="iso4217-usd">7758000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2019-01-31_BusinessAcquisitionAxis-The2019AcquisitionsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" decimals="-3" id="c71153190" unitRef="iso4217-usd">20858000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2019-01-31_BusinessAcquisitionAxis-AljexSoftwareIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember" decimals="-3" id="c71153191" unitRef="iso4217-usd">12400000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2019-01-31_BusinessAcquisitionAxis-VelocityMailMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember" decimals="-3" id="c71153192" unitRef="iso4217-usd">7600000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2019-01-31_BusinessAcquisitionAxis-PinPointMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember" id="c71153193" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2019-01-31_BusinessAcquisitionAxis-The2019AcquisitionsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember" decimals="-3" id="c71153194" unitRef="iso4217-usd">20000000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2019-01-31_BusinessAcquisitionAxis-AljexSoftwareIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember" decimals="-3" id="c71153195" unitRef="iso4217-usd">280000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2019-01-31_BusinessAcquisitionAxis-VelocityMailMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember" decimals="-3" id="c71153196" unitRef="iso4217-usd">100000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2019-01-31_BusinessAcquisitionAxis-PinPointMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember" decimals="-3" id="c71153197" unitRef="iso4217-usd">207000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2019-01-31_BusinessAcquisitionAxis-The2019AcquisitionsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember" decimals="-3" id="c71153198" unitRef="iso4217-usd">587000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2019-01-31_BusinessAcquisitionAxis-AljexSoftwareIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" decimals="-3" id="c71153199" unitRef="iso4217-usd">230000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2019-01-31_BusinessAcquisitionAxis-VelocityMailMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" decimals="-3" id="c71153200" unitRef="iso4217-usd">300000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2019-01-31_BusinessAcquisitionAxis-PinPointMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" decimals="-3" id="c71153201" unitRef="iso4217-usd">69000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="i_2019-01-31_BusinessAcquisitionAxis-The2019AcquisitionsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" decimals="-3" id="c71153202" unitRef="iso4217-usd">599000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets contextRef="i_2019-01-31_BusinessAcquisitionAxis-AljexSoftwareIncMember" id="c71153167" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets contextRef="i_2019-01-31_BusinessAcquisitionAxis-VelocityMailMember" decimals="-3" id="c71153168" unitRef="iso4217-usd">501000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets contextRef="i_2019-01-31_BusinessAcquisitionAxis-PinPointMember" id="c71153169" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets contextRef="i_2019-01-31_BusinessAcquisitionAxis-The2019AcquisitionsMember" decimals="-3" id="c71153170" unitRef="iso4217-usd">501000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment contextRef="i_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember" decimals="-3" id="c71152978" unitRef="iso4217-usd">30000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment contextRef="i_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember" decimals="-3" id="c71152979" unitRef="iso4217-usd">2048000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment contextRef="i_2020-01-31_BusinessAcquisitionAxis-StepcomMember" decimals="-3" id="c71152980" unitRef="iso4217-usd">257000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment contextRef="i_2020-01-31_BusinessAcquisitionAxis-BesttransportMember" decimals="-3" id="c71152981" unitRef="iso4217-usd">35000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment contextRef="i_2020-01-31_BusinessAcquisitionAxis-The2020AcquisitionsMember" decimals="-3" id="c71152982" unitRef="iso4217-usd">2370000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment>
  <us-gaap:BusinessCombinationsPolicy contextRef="d_2020-02-01_2021-01-31" id="c71152873">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;Business combinations&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;We apply the provisions of ASC Topic &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;805,&lt;/div&gt; &amp;#x201c;Business Combinations&amp;#x201d; (Topic &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;805&lt;/div&gt;), 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 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.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; may &lt;/div&gt;be up to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;one&lt;/div&gt; year from the acquisition date, we &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; may &lt;/div&gt;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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 13 --&gt; &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;420,&lt;/div&gt; &amp;#x201c;Exit or Disposal Cost Obligations&amp;#x201d; (Topic &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;420&lt;/div&gt;) and are accounted for separately from the business combination.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;For a given acquisition, we generally identify certain pre-acquisition contingencies as of the acquisition date and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; may &lt;/div&gt;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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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, subsequently, in our results of operations.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; exist at the acquisition date, are recorded in our provision for income taxes in our consolidated statement of operations.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:BusinessCombinationsPolicy>
  <us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock contextRef="d_2020-02-01_2021-01-31" id="s1792189">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Note &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1&lt;/div&gt; - Description of the Business&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;The Descartes Systems Group Inc. (&amp;#x201c;Descartes&amp;#x201d;, &amp;#x201c;Company&amp;#x201d;, &amp;#x201c;our&amp;#x201d; or &amp;#x201c;we&amp;#x201d;) is a provider of global logistics technology solutions. Customers use our modular, software-as-a-service (&amp;#x201c;SaaS&amp;#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;&amp;nbsp;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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;third&lt;/div&gt;-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;/div&gt;&lt;/div&gt;</us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock>
  <us-gaap:CapitalizedContractCostAmortization contextRef="d_2020-02-01_2021-01-31" decimals="-5" id="c71146630" unitRef="iso4217-usd">3300000</us-gaap:CapitalizedContractCostAmortization>
  <us-gaap:CapitalizedContractCostAmortization contextRef="d_2019-02-01_2020-01-31" decimals="-5" id="c71146631" unitRef="iso4217-usd">2500000</us-gaap:CapitalizedContractCostAmortization>
  <us-gaap:CapitalizedContractCostAmortization contextRef="d_2018-02-01_2019-01-31" decimals="-5" id="c71146632" unitRef="iso4217-usd">1800000</us-gaap:CapitalizedContractCostAmortization>
  <us-gaap:CapitalizedContractCostNet contextRef="i_2021-01-31" decimals="-5" id="c71146628" unitRef="iso4217-usd">12900000</us-gaap:CapitalizedContractCostNet>
  <us-gaap:CapitalizedContractCostNet contextRef="i_2020-01-31" decimals="-5" id="c71146629" unitRef="iso4217-usd">9800000</us-gaap:CapitalizedContractCostNet>
  <us-gaap:CashAcquiredFromAcquisition contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-PeoplevoxMember" decimals="-3" id="c71152944" unitRef="iso4217-usd">1634000</us-gaap:CashAcquiredFromAcquisition>
  <us-gaap:CashAcquiredFromAcquisition contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-KontainersMember" decimals="-3" id="c71152945" unitRef="iso4217-usd">13000</us-gaap:CashAcquiredFromAcquisition>
  <us-gaap:CashAcquiredFromAcquisition contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember" decimals="-3" id="c71152946" unitRef="iso4217-usd">529000</us-gaap:CashAcquiredFromAcquisition>
  <us-gaap:CashAcquiredFromAcquisition contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember" decimals="-3" id="c71153051" unitRef="iso4217-usd">170000</us-gaap:CashAcquiredFromAcquisition>
  <us-gaap:CashAcquiredFromAcquisition contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember" decimals="-3" id="c71153052" unitRef="iso4217-usd">213000</us-gaap:CashAcquiredFromAcquisition>
  <us-gaap:CashAcquiredFromAcquisition contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-StepcomMember" decimals="-3" id="c71153053" unitRef="iso4217-usd">2700000</us-gaap:CashAcquiredFromAcquisition>
  <us-gaap:CashAcquiredFromAcquisition contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-BesttransportMember" decimals="-3" id="c71153054" unitRef="iso4217-usd">507000</us-gaap:CashAcquiredFromAcquisition>
  <us-gaap:CashAcquiredFromAcquisition contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-AljexSoftwareIncMember" decimals="-3" id="c71153214" unitRef="iso4217-usd">193000</us-gaap:CashAcquiredFromAcquisition>
  <us-gaap:CashAcquiredFromAcquisition contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-VelocityMailMember" id="c71153215" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:CashAcquiredFromAcquisition contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-PinPointMember" decimals="-3" id="c71153216" unitRef="iso4217-usd">769000</us-gaap:CashAcquiredFromAcquisition>
  <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="i_2021-01-31" decimals="-3" id="c71144859" unitRef="iso4217-usd">133661000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
  <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="i_2020-01-31" decimals="-3" id="c71144860" unitRef="iso4217-usd">44403000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
  <us-gaap:CashAndCashEquivalentsPolicyTextBlock contextRef="d_2020-02-01_2021-01-31" id="c71152862">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Cash&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Cash included highly liquid short-term deposits with original maturities of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt; months or less.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:CashAndCashEquivalentsPolicyTextBlock>
  <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations contextRef="i_2020-01-31" decimals="-3" id="c71145124" unitRef="iso4217-usd">44403000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
  <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations contextRef="i_2019-01-31" decimals="-3" id="c71145125" unitRef="iso4217-usd">27298000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
  <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations contextRef="i_2018-01-31" decimals="-3" id="c71145126" unitRef="iso4217-usd">35145000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
  <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations contextRef="i_2021-01-31" decimals="-3" id="c71145127" unitRef="iso4217-usd">133661000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
  <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145121" unitRef="iso4217-usd">89258000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
  <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145122" unitRef="iso4217-usd">17105000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
  <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145123" unitRef="iso4217-usd">-7847000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
  <us-gaap:CashFlowSupplementalDisclosuresTextBlock contextRef="d_2020-02-01_2021-01-31" id="s1792250">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Note &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;21&lt;/div&gt; &amp;#x2013; Supplemental Cash Flow Information&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;The following tables presents the cash flow changes in operating asset and liabilities:&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td style="font-style: italic"&gt;Year Ended&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2019&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="width: 61%; text-align: left"&gt;Trade accounts receivable&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;143&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,733&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(135&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left"&gt;Other accounts receivable&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(7,098&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(2,547&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(451&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left"&gt;Prepaid expenses and other&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(5,029&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(5,942&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(4,466&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td&gt;Inventory&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;99&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(345&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;74&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left"&gt;Accounts payable&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(686&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,768&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,065&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left"&gt;Accrued liabilities&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(999&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,265&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,570&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left"&gt;Income taxes payable&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,835&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,550&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(2,423&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left"&gt;Operating leases&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;283&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;546&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Deferred revenue&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5,877&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(4,184&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,047&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(3,575&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(5,256&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(3,849&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt;&lt;/div&gt;</us-gaap:CashFlowSupplementalDisclosuresTextBlock>
  <us-gaap:CommitmentsAndContingencies contextRef="i_2021-01-31" id="c71152770" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:CommitmentsAndContingencies contextRef="i_2020-01-31" id="c71152771" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock contextRef="d_2020-02-01_2021-01-31" id="s1792222">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Note &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;14&lt;/div&gt; - Commitments, Contingencies and Guarantees&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Commitments&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;As described in Note &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2&lt;/div&gt; to these consolidated financial statements, we maintain deferred share unit (&amp;#x201c;DSU&amp;#x201d;) and cash-settled restricted share unit (&amp;#x201c;CRSU&amp;#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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; yet been settled in cash. As such, we had an unrecognized aggregate liability for the unvested DSUs and CRSUs of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;nil&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$1.5&lt;/div&gt; million, respectively, at &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021. &lt;/div&gt;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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021, &lt;/div&gt;we had equity derivatives for &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;226,525&lt;/div&gt; Descartes common shares and a DSU liability for &lt;div style="display: inline; color: black"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;226,525&lt;/div&gt; Descartes common shares, resulting in &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;no&lt;/div&gt; net exposure resulting from changes to our share price&lt;/div&gt;.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;Contingencies&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; presently determinable but, in the opinion of management after consulting with legal counsel, the ultimate aggregate potential liability is &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; currently expected to have a material effect on our results of operations or financial position.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Product Warranties&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; encountered material costs as a result of such obligations and have &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; accrued any liabilities related to such obligations in our consolidated financial statements.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Business combination agreements&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;In respect of our acquisitions of CORE, Kontainers and ShipTrack, up to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$31.6&lt;/div&gt; million in cash &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; may &lt;/div&gt;become payable if certain revenue performance targets are met in the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;two&lt;/div&gt; years following the acquisition. A balance of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$4.7&lt;/div&gt; million is accrued related to the fair value of this contingent consideration as at &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021.&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;Guarantees&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;In the normal course of business, we enter into a variety of agreements that &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; may &lt;/div&gt;contain features that meet the definition of a guarantee under ASC Topic &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;460,&lt;/div&gt; &amp;#x201c;Guarantees&amp;#x201d;. The following lists our significant guarantees:&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Intellectual property indemnification obligations&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;We provide indemnifications of varying scope to our customers against claims of intellectual property infringement made by &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;third&lt;/div&gt; 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; encountered material costs as a result of such indemnification obligations.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Other indemnification agreements&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;third&lt;/div&gt; party claims that &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; may &lt;/div&gt;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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; made any significant payments under such indemnities.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 28 --&gt;   &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; accrued any liability in our consolidated financial statements for the guarantees or indemnities described above.&lt;/div&gt;&lt;/div&gt;</us-gaap:CommitmentsAndContingenciesDisclosureTextBlock>
  <us-gaap:CommonStockSharesIssued contextRef="i_2021-01-31" decimals="INF" id="c71146649" unitRef="xbrli-shares">84494658</us-gaap:CommonStockSharesIssued>
  <us-gaap:CommonStockSharesIssued contextRef="i_2020-01-31" decimals="INF" id="c71146650" unitRef="xbrli-shares">84156316</us-gaap:CommonStockSharesIssued>
  <us-gaap:CommonStockSharesOutstanding contextRef="i_2021-01-31" decimals="INF" id="c71146651" unitRef="xbrli-shares">84494658</us-gaap:CommonStockSharesOutstanding>
  <us-gaap:CommonStockSharesOutstanding contextRef="i_2020-01-31" decimals="INF" id="c71146652" unitRef="xbrli-shares">84156316</us-gaap:CommonStockSharesOutstanding>
  <us-gaap:CommonStockSharesOutstanding contextRef="i_2019-01-31" decimals="-3" id="c71145576" unitRef="xbrli-shares">76865000</us-gaap:CommonStockSharesOutstanding>
  <us-gaap:CommonStockSharesOutstanding contextRef="i_2018-01-31" decimals="-3" id="c71145577" unitRef="xbrli-shares">76773000</us-gaap:CommonStockSharesOutstanding>
  <us-gaap:CommonStockValue contextRef="i_2021-01-31" decimals="-3" id="c71144909" unitRef="iso4217-usd">531825000</us-gaap:CommonStockValue>
  <us-gaap:CommonStockValue contextRef="i_2020-01-31" decimals="-3" id="c71144910" unitRef="iso4217-usd">524154000</us-gaap:CommonStockValue>
  <us-gaap:ComprehensiveIncomeNetOfTax contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145004" unitRef="iso4217-usd">76855000</us-gaap:ComprehensiveIncomeNetOfTax>
  <us-gaap:ComprehensiveIncomeNetOfTax contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145005" unitRef="iso4217-usd">36254000</us-gaap:ComprehensiveIncomeNetOfTax>
  <us-gaap:ComprehensiveIncomeNetOfTax contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145006" unitRef="iso4217-usd">21328000</us-gaap:ComprehensiveIncomeNetOfTax>
  <us-gaap:ConsolidationPolicyTextBlock contextRef="d_2020-02-01_2021-01-31" id="c71152859">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Basis of consolidation&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;The consolidated financial statements include the financial statements of Descartes and our wholly-owned subsidiaries. We do &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; have any variable interests in variable interest entities. All intercompany accounts and transactions have been eliminated during consolidation.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ConsolidationPolicyTextBlock>
  <us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-31">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Deferred Revenue&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 87%; text-indent: -0.5in; padding-left: 0.5in"&gt;Balance at January 31, 2019&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;35,091&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Recognition of previously deferred revenue&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(30,580&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Deferral of revenue&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;37,408&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Increases from business combinations, net&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;551&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Effect of movements in foreign exchange&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(407&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: -0.5in; padding-left: 0.5in"&gt;Balance at January 31, 2020&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;42,063&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Recognition of previously deferred revenue&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(37,843&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Deferral of revenue&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;46,386&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Increases from business combinations, net&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;39&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Effect of movements in foreign exchange&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;646&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-bottom: 1pt; text-indent: -15pt; padding-left: 15pt"&gt;Balance at January 31, 2021&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;51,291&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Current&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;49,878&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Long-term&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,413&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Contract Assets&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 87%; text-indent: -0.5in; padding-left: 0.5in"&gt;Balance at January 31, 2019&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;812&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Transfers to trade receivables from contract assets&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(490&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;791&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Effect of movements in foreign exchange&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(6&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: -0.5in; padding-left: 0.5in"&gt;Balance at January 31, 2020&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,107&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Transfers to trade receivables from contract assets&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(563&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;783&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Effect of movements in foreign exchange&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;26&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-bottom: 1pt; text-indent: -15pt; padding-left: 15pt"&gt;Balance at January 31, 2021&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,353&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock>
  <us-gaap:ContractWithCustomerAssetNet contextRef="i_2018-02-01_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201409Member" decimals="-3" id="c71146206" unitRef="iso4217-usd">500000</us-gaap:ContractWithCustomerAssetNet>
  <us-gaap:ContractWithCustomerAssetNet contextRef="i_2020-01-31" decimals="-3" id="c71145988" unitRef="iso4217-usd">1107000</us-gaap:ContractWithCustomerAssetNet>
  <us-gaap:ContractWithCustomerAssetNet contextRef="i_2021-01-31" decimals="-3" id="c71145992" unitRef="iso4217-usd">1353000</us-gaap:ContractWithCustomerAssetNet>
  <us-gaap:ContractWithCustomerAssetReclassifiedToReceivable contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145985" unitRef="iso4217-usd">490000</us-gaap:ContractWithCustomerAssetReclassifiedToReceivable>
  <us-gaap:ContractWithCustomerAssetReclassifiedToReceivable contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145989" unitRef="iso4217-usd">563000</us-gaap:ContractWithCustomerAssetReclassifiedToReceivable>
  <us-gaap:ContractWithCustomerLiability contextRef="i_2019-01-31" decimals="-3" id="c71145971" unitRef="iso4217-usd">35091000</us-gaap:ContractWithCustomerLiability>
  <us-gaap:ContractWithCustomerLiability contextRef="i_2020-01-31" decimals="-3" id="c71145976" unitRef="iso4217-usd">42063000</us-gaap:ContractWithCustomerLiability>
  <us-gaap:ContractWithCustomerLiability contextRef="i_2021-01-31" decimals="-3" id="c71145981" unitRef="iso4217-usd">51291000</us-gaap:ContractWithCustomerLiability>
  <us-gaap:ContractWithCustomerLiabilityCurrent contextRef="i_2021-01-31" decimals="-3" id="c71145982" unitRef="iso4217-usd">49878000</us-gaap:ContractWithCustomerLiabilityCurrent>
  <us-gaap:ContractWithCustomerLiabilityCurrent contextRef="i_2020-01-31" decimals="-3" id="c71144894" unitRef="iso4217-usd">41143000</us-gaap:ContractWithCustomerLiabilityCurrent>
  <us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145974" unitRef="iso4217-usd">551000</us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination>
  <us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145979" unitRef="iso4217-usd">39000</us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination>
  <us-gaap:ContractWithCustomerLiabilityNoncurrent contextRef="i_2021-01-31" decimals="-3" id="c71145983" unitRef="iso4217-usd">1413000</us-gaap:ContractWithCustomerLiabilityNoncurrent>
  <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145972" unitRef="iso4217-usd">-30580000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
  <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145977" unitRef="iso4217-usd">-37843000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
  <us-gaap:CostOfGoodsAndServicesSold contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71144931" unitRef="iso4217-usd">89910000</us-gaap:CostOfGoodsAndServicesSold>
  <us-gaap:CostOfGoodsAndServicesSold contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71144932" unitRef="iso4217-usd">85721000</us-gaap:CostOfGoodsAndServicesSold>
  <us-gaap:CostOfGoodsAndServicesSold contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71144933" unitRef="iso4217-usd">74994000</us-gaap:CostOfGoodsAndServicesSold>
  <us-gaap:CurrentFederalTaxExpenseBenefit contextRef="d_2020-02-01_2021-01-31_AdjustmentsForChangeInAccountingPrincipleAxis-VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember" decimals="-5" id="c71146604" unitRef="iso4217-usd">-9300000</us-gaap:CurrentFederalTaxExpenseBenefit>
  <us-gaap:CurrentIncomeTaxExpenseBenefit contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71144967" unitRef="iso4217-usd">3746000</us-gaap:CurrentIncomeTaxExpenseBenefit>
  <us-gaap:CurrentIncomeTaxExpenseBenefit contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71144968" unitRef="iso4217-usd">5295000</us-gaap:CurrentIncomeTaxExpenseBenefit>
  <us-gaap:CurrentIncomeTaxExpenseBenefit contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71144969" unitRef="iso4217-usd">6042000</us-gaap:CurrentIncomeTaxExpenseBenefit>
  <us-gaap:CurrentIncomeTaxExpenseBenefit contextRef="d_2020-02-01_2021-01-31_IncomeTaxAuthorityAxis-CA" decimals="-3" id="c71145826" unitRef="iso4217-usd">1875000</us-gaap:CurrentIncomeTaxExpenseBenefit>
  <us-gaap:CurrentIncomeTaxExpenseBenefit contextRef="d_2019-02-01_2020-01-31_IncomeTaxAuthorityAxis-CA" decimals="-3" id="c71145827" unitRef="iso4217-usd">1020000</us-gaap:CurrentIncomeTaxExpenseBenefit>
  <us-gaap:CurrentIncomeTaxExpenseBenefit contextRef="d_2018-02-01_2019-01-31_IncomeTaxAuthorityAxis-CA" decimals="-3" id="c71145828" unitRef="iso4217-usd">3037000</us-gaap:CurrentIncomeTaxExpenseBenefit>
  <us-gaap:CurrentIncomeTaxExpenseBenefit contextRef="d_2020-02-01_2021-01-31_IncomeTaxAuthorityAxis-US" decimals="-3" id="c71145829" unitRef="iso4217-usd">-3050000</us-gaap:CurrentIncomeTaxExpenseBenefit>
  <us-gaap:CurrentIncomeTaxExpenseBenefit contextRef="d_2019-02-01_2020-01-31_IncomeTaxAuthorityAxis-US" decimals="-3" id="c71145830" unitRef="iso4217-usd">3496000</us-gaap:CurrentIncomeTaxExpenseBenefit>
  <us-gaap:CurrentIncomeTaxExpenseBenefit contextRef="d_2018-02-01_2019-01-31_IncomeTaxAuthorityAxis-US" decimals="-3" id="c71145831" unitRef="iso4217-usd">1298000</us-gaap:CurrentIncomeTaxExpenseBenefit>
  <us-gaap:CurrentIncomeTaxExpenseBenefit contextRef="d_2020-02-01_2021-01-31_IncomeTaxAuthorityAxis-OtherCountriesMember" decimals="-3" id="c71145832" unitRef="iso4217-usd">4921000</us-gaap:CurrentIncomeTaxExpenseBenefit>
  <us-gaap:CurrentIncomeTaxExpenseBenefit contextRef="d_2019-02-01_2020-01-31_IncomeTaxAuthorityAxis-OtherCountriesMember" decimals="-3" id="c71145833" unitRef="iso4217-usd">779000</us-gaap:CurrentIncomeTaxExpenseBenefit>
  <us-gaap:CurrentIncomeTaxExpenseBenefit contextRef="d_2018-02-01_2019-01-31_IncomeTaxAuthorityAxis-OtherCountriesMember" decimals="-3" id="c71145834" unitRef="iso4217-usd">1707000</us-gaap:CurrentIncomeTaxExpenseBenefit>
  <us-gaap:DebtDisclosureTextBlock contextRef="d_2020-02-01_2021-01-31" id="s1792216">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Note &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12&lt;/div&gt; &amp;#x2013; Long-Term Debt&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;On &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 25, 2019, &lt;/div&gt;we amended and increased our senior secured revolving credit facility. The amended facility is now a &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$350.0&lt;/div&gt; million revolving operating credit facility to be available for general corporate purposes, including the financing of ongoing working capital needs and acquisitions. With the approval of the lenders, the credit facility can be expanded to a total of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$500.0&lt;/div&gt; million. The credit facility has a &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;five&lt;/div&gt;-year maturity with &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;no&lt;/div&gt; fixed repayment dates prior to the end of the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;five&lt;/div&gt;-year term ending &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 2024. &lt;/div&gt;Borrowings under the credit facility are secured by a &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;first&lt;/div&gt; charge over substantially all of Descartes' 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' Acceptance (BA) or London Interbank Offered Rate (LIBOR) plus an additional &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;0&lt;/div&gt; to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;250&lt;/div&gt; basis points based on the ratio of net debt to adjusted earnings before interest, taxes, depreciation and amortization, as defined in the credit agreement. A standby fee of between &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;20&lt;/div&gt; to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;40&lt;/div&gt; basis points will be charged on all undrawn amounts. The credit facility contains certain customary representations, warranties and guarantees, and covenants.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 26 --&gt;   &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;No&lt;/div&gt; amounts were drawn on the credit facility as of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021 &lt;/div&gt;and the balance of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$350.0&lt;/div&gt; million is available for use. We were in compliance with the covenants of the credit facility as of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021.&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;As at &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021, &lt;/div&gt;we had outstanding letters of credit of approximately &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.2&lt;/div&gt; million (&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.2&lt;/div&gt; million as at &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2020), &lt;/div&gt;which were &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; related to our credit facility.&lt;/div&gt;&lt;/div&gt;</us-gaap:DebtDisclosureTextBlock>
  <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1 contextRef="d_2019-01-25_2019-01-25_CreditFacilityAxis-SeniorSecuredCreditFacilityMember_RangeAxis-MinimumMember_VariableRateAxis-CanadaOrUsPrimeRateBaOrLiborMember" decimals="3" id="c71146451" unitRef="xbrli-pure">0</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
  <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1 contextRef="d_2019-01-25_2019-01-25_CreditFacilityAxis-SeniorSecuredCreditFacilityMember_RangeAxis-MaximumMember_VariableRateAxis-CanadaOrUsPrimeRateBaOrLiborMember" decimals="3" id="c71146452" unitRef="xbrli-pure">0.025</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
  <us-gaap:DebtInstrumentTerm contextRef="d_2019-01-25_2019-01-25_CreditFacilityAxis-LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember_DebtInstrumentAxis-SeniorSecuredCreditFacilityMember" id="c71146447">P5Y</us-gaap:DebtInstrumentTerm>
  <us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent contextRef="i_2021-01-31_PlanNameAxis-DeferredShareUnitPlanMember" decimals="-3" id="c71146571" unitRef="iso4217-usd">13800000</us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent>
  <us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent contextRef="i_2020-01-31_PlanNameAxis-DeferredShareUnitPlanMember" decimals="-3" id="c71146572" unitRef="iso4217-usd">11300000</us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent>
  <us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent contextRef="i_2021-01-31_PlanNameAxis-CashsettledRestrictedShareUnitMember" decimals="-3" id="c71146583" unitRef="iso4217-usd">900000</us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent>
  <us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent contextRef="i_2020-01-31_PlanNameAxis-CashsettledRestrictedShareUnitMember" decimals="-3" id="c71146584" unitRef="iso4217-usd">800000</us-gaap:DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent>
  <us-gaap:DeferredFederalIncomeTaxExpenseBenefit contextRef="d_2020-02-01_2021-01-31_AdjustmentsForChangeInAccountingPrincipleAxis-VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember" decimals="-5" id="c71171240" unitRef="iso4217-usd">9300000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
  <us-gaap:DeferredIncomeTaxAssetsNet contextRef="i_2021-01-31" decimals="-3" id="c71144877" unitRef="iso4217-usd">15216000</us-gaap:DeferredIncomeTaxAssetsNet>
  <us-gaap:DeferredIncomeTaxAssetsNet contextRef="i_2020-01-31" decimals="-3" id="c71144878" unitRef="iso4217-usd">21602000</us-gaap:DeferredIncomeTaxAssetsNet>
  <us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145079" unitRef="iso4217-usd">14523000</us-gaap:DeferredIncomeTaxExpenseBenefit>
  <us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145080" unitRef="iso4217-usd">5743000</us-gaap:DeferredIncomeTaxExpenseBenefit>
  <us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145081" unitRef="iso4217-usd">2191000</us-gaap:DeferredIncomeTaxExpenseBenefit>
  <us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="d_2020-02-01_2021-01-31_IncomeTaxAuthorityAxis-CA" decimals="-3" id="c71145838" unitRef="iso4217-usd">7047000</us-gaap:DeferredIncomeTaxExpenseBenefit>
  <us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="d_2019-02-01_2020-01-31_IncomeTaxAuthorityAxis-CA" decimals="-3" id="c71145839" unitRef="iso4217-usd">5008000</us-gaap:DeferredIncomeTaxExpenseBenefit>
  <us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="d_2018-02-01_2019-01-31_IncomeTaxAuthorityAxis-CA" decimals="-3" id="c71145840" unitRef="iso4217-usd">2531000</us-gaap:DeferredIncomeTaxExpenseBenefit>
  <us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="d_2020-02-01_2021-01-31_IncomeTaxAuthorityAxis-US" decimals="-3" id="c71145841" unitRef="iso4217-usd">9537000</us-gaap:DeferredIncomeTaxExpenseBenefit>
  <us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="d_2019-02-01_2020-01-31_IncomeTaxAuthorityAxis-US" decimals="-3" id="c71145842" unitRef="iso4217-usd">1390000</us-gaap:DeferredIncomeTaxExpenseBenefit>
  <us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="d_2018-02-01_2019-01-31_IncomeTaxAuthorityAxis-US" decimals="-3" id="c71145843" unitRef="iso4217-usd">67000</us-gaap:DeferredIncomeTaxExpenseBenefit>
  <us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="d_2020-02-01_2021-01-31_IncomeTaxAuthorityAxis-OtherCountriesMember" decimals="-3" id="c71145844" unitRef="iso4217-usd">-2061000</us-gaap:DeferredIncomeTaxExpenseBenefit>
  <us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="d_2019-02-01_2020-01-31_IncomeTaxAuthorityAxis-OtherCountriesMember" decimals="-3" id="c71145845" unitRef="iso4217-usd">-655000</us-gaap:DeferredIncomeTaxExpenseBenefit>
  <us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="d_2018-02-01_2019-01-31_IncomeTaxAuthorityAxis-OtherCountriesMember" decimals="-3" id="c71145846" unitRef="iso4217-usd">-407000</us-gaap:DeferredIncomeTaxExpenseBenefit>
  <us-gaap:DeferredIncomeTaxLiabilities contextRef="i_2021-01-31" decimals="-3" id="c71145873" unitRef="iso4217-usd">47139000</us-gaap:DeferredIncomeTaxLiabilities>
  <us-gaap:DeferredIncomeTaxLiabilities contextRef="i_2020-01-31" decimals="-3" id="c71145874" unitRef="iso4217-usd">43097000</us-gaap:DeferredIncomeTaxLiabilities>
  <us-gaap:DeferredIncomeTaxLiabilitiesNet contextRef="i_2018-02-01_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201409Member" decimals="-3" id="c71146208" unitRef="iso4217-usd">1100000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
  <us-gaap:DeferredIncomeTaxLiabilitiesNet contextRef="i_2021-01-31" decimals="-3" id="c71144905" unitRef="iso4217-usd">29385000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
  <us-gaap:DeferredIncomeTaxLiabilitiesNet contextRef="i_2020-01-31" decimals="-3" id="c71144906" unitRef="iso4217-usd">15067000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
  <us-gaap:DeferredRevenueNoncurrent contextRef="i_2021-01-31" decimals="-3" id="c71144901" unitRef="iso4217-usd">1413000</us-gaap:DeferredRevenueNoncurrent>
  <us-gaap:DeferredRevenueNoncurrent contextRef="i_2020-01-31" decimals="-3" id="c71144902" unitRef="iso4217-usd">920000</us-gaap:DeferredRevenueNoncurrent>
  <us-gaap:DeferredTaxAssetsGross contextRef="i_2021-01-31" decimals="-3" id="c71145865" unitRef="iso4217-usd">44336000</us-gaap:DeferredTaxAssetsGross>
  <us-gaap:DeferredTaxAssetsGross contextRef="i_2020-01-31" decimals="-3" id="c71145866" unitRef="iso4217-usd">60102000</us-gaap:DeferredTaxAssetsGross>
  <us-gaap:DeferredTaxAssetsOperatingLossCarryforwards contextRef="i_2021-01-31" decimals="-3" id="c71145857" unitRef="iso4217-usd">12866000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwards>
  <us-gaap:DeferredTaxAssetsOperatingLossCarryforwards contextRef="i_2020-01-31" decimals="-3" id="c71145858" unitRef="iso4217-usd">10579000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwards>
  <us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment contextRef="i_2021-01-31" decimals="-3" id="c71145861" unitRef="iso4217-usd">23754000</us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment>
  <us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment contextRef="i_2020-01-31" decimals="-3" id="c71145862" unitRef="iso4217-usd">33929000</us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment>
  <us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch contextRef="i_2021-01-31" decimals="-3" id="c71145863" unitRef="iso4217-usd">1649000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch>
  <us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch contextRef="i_2020-01-31" decimals="-3" id="c71145864" unitRef="iso4217-usd">756000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch>
  <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost contextRef="i_2021-01-31" decimals="-3" id="c71146533" unitRef="iso4217-usd">700000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
  <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost contextRef="i_2020-01-31" decimals="-3" id="c71146534" unitRef="iso4217-usd">700000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
  <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities contextRef="i_2021-01-31" decimals="-3" id="c71145855" unitRef="iso4217-usd">4471000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities>
  <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities contextRef="i_2020-01-31" decimals="-3" id="c71145856" unitRef="iso4217-usd">14838000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities>
  <us-gaap:DeferredTaxAssetsValuationAllowance contextRef="i_2021-01-31" decimals="-3" id="c71145877" unitRef="iso4217-usd">11365000</us-gaap:DeferredTaxAssetsValuationAllowance>
  <us-gaap:DeferredTaxAssetsValuationAllowance contextRef="i_2020-01-31" decimals="-3" id="c71145878" unitRef="iso4217-usd">10470000</us-gaap:DeferredTaxAssetsValuationAllowance>
  <us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets contextRef="i_2021-01-31" decimals="-3" id="c71145867" unitRef="iso4217-usd">45030000</us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets>
  <us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets contextRef="i_2020-01-31" decimals="-3" id="c71145868" unitRef="iso4217-usd">41381000</us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets>
  <us-gaap:DeferredTaxLiabilitiesOther contextRef="i_2021-01-31" decimals="-3" id="c71145871" unitRef="iso4217-usd">2109000</us-gaap:DeferredTaxLiabilitiesOther>
  <us-gaap:DeferredTaxLiabilitiesOther contextRef="i_2020-01-31" decimals="-3" id="c71145872" unitRef="iso4217-usd">1716000</us-gaap:DeferredTaxLiabilitiesOther>
  <us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment contextRef="i_2021-01-31" id="c71145869" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment contextRef="i_2020-01-31" id="c71145870" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:Depreciation contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145067" unitRef="iso4217-usd">5757000</us-gaap:Depreciation>
  <us-gaap:Depreciation contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145068" unitRef="iso4217-usd">6037000</us-gaap:Depreciation>
  <us-gaap:Depreciation contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145069" unitRef="iso4217-usd">4544000</us-gaap:Depreciation>
  <us-gaap:DerivativeAssets contextRef="i_2021-01-31_HedgingDesignationAxis-DesignatedAsHedgingInstrumentMember" id="c71145447" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:DerivativeAssets contextRef="i_2021-01-31_HedgingDesignationAxis-NondesignatedMember" decimals="-3" id="c71145448" unitRef="iso4217-usd">8001000</us-gaap:DerivativeAssets>
  <us-gaap:DerivativeAssets contextRef="i_2021-01-31" decimals="-3" id="c71145449" unitRef="iso4217-usd">8001000</us-gaap:DerivativeAssets>
  <us-gaap:DerivativeAssets contextRef="i_2020-01-31_HedgingDesignationAxis-DesignatedAsHedgingInstrumentMember" id="c71145451" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:DerivativeAssets contextRef="i_2020-01-31_HedgingDesignationAxis-NondesignatedMember" decimals="-3" id="c71145452" unitRef="iso4217-usd">5656000</us-gaap:DerivativeAssets>
  <us-gaap:DerivativeAssets contextRef="i_2020-01-31" decimals="-3" id="c71145453" unitRef="iso4217-usd">5656000</us-gaap:DerivativeAssets>
  <us-gaap:DerivativeGainOnDerivative contextRef="d_2020-02-01_2021-01-31_IncomeStatementLocationAxis-GeneralAndAdministrativeExpenseMember" decimals="-5" id="c71146409" unitRef="iso4217-usd">3400000</us-gaap:DerivativeGainOnDerivative>
  <us-gaap:DerivativeGainOnDerivative contextRef="d_2019-02-01_2020-01-31_IncomeStatementLocationAxis-GeneralAndAdministrativeExpenseMember" decimals="-5" id="c71146410" unitRef="iso4217-usd">4000000</us-gaap:DerivativeGainOnDerivative>
  <us-gaap:DerivativeGainOnDerivative contextRef="d_2018-02-01_2019-01-31_IncomeStatementLocationAxis-GeneralAndAdministrativeExpenseMember" decimals="-5" id="c71146411" unitRef="iso4217-usd">1200000</us-gaap:DerivativeGainOnDerivative>
  <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock contextRef="d_2020-02-01_2021-01-31" id="s1792227">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Note &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;17&lt;/div&gt; - Stock-Based Compensation Plans&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Total estimated stock-based compensation expense recognized in our consolidated statement of operations was as follows:&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td style="font-style: italic"&gt;Year Ended&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2019&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="width: 61%"&gt;Cost of revenues&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;319&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;220&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;160&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left"&gt;Sales and marketing&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;896&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;706&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;436&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left"&gt;Research and development&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;404&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;281&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;184&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left; padding-bottom: 1pt"&gt;General and administrative&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4,694&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,702&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,930&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Effect on net income&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6,313&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4,909&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,710&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Differences between how GAAP and applicable income tax laws treat the amount and timing of recognition of stock-based compensation expense &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; may &lt;/div&gt;result in a deferred tax asset. We have recorded a valuation allowance against any such deferred tax asset except for &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.7&lt;/div&gt; million (&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.7&lt;/div&gt; million at &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2020) &lt;/div&gt;recognized in the United States. The tax benefit realized in connection with stock options exercised during &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2021,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt; was nominal, &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.1&lt;/div&gt; million and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.2&lt;/div&gt; million, respectively.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Stock Options&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;As of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021, &lt;/div&gt;we had &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,147,720&lt;/div&gt; stock options granted and outstanding under our shareholder-approved stock option plan and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,303,444&lt;/div&gt; remained available for grant.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;As of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$5.1&lt;/div&gt; 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2.7&lt;/div&gt; years. The total fair value of stock options vested during &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2021&lt;/div&gt; was &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$2.3&lt;/div&gt; million.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;The total number of options granted during the years ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt; was &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;381,859,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;367,173&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;272,144,&lt;/div&gt; respectively. The weighted average grant-date fair value of options granted during the years ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt; was &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$10.19,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$8.99&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$7.10&lt;/div&gt; per option, respectively.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;The weighted-average assumptions were as follows:&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td style="font-style: italic"&gt;Year Ended&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31, 2021&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;January 31, 2020&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;January 31, 2019&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left"&gt;Expected dividend yield (%)&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="width: 61%; text-align: left"&gt;Expected volatility (%)&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;26.4&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;23.5&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;23.6&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left"&gt;Risk-free rate (%)&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;0.7&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1.4&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2.0&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left"&gt;Expected option life (years)&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 31 --&gt;   &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;A summary of option activity under all of our plans is presented as follows:&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td style="text-align: center"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Number of Stock Options Outstanding&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Weighted-&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Average Exercise&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Price&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Weighted- Average Remaining Contractual Life (years)&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Aggregate Intrinsic&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Value&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(in millions)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="width: 40%"&gt;Balance at January 31, 2019&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 12%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;879,338&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="width: 12%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;21.41&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 12%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4.7&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="width: 12%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8.7&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt"&gt;Granted&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;367,173&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;$&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;38.06&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt"&gt;Exercised&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(94,970&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;$&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;15.62&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; padding-bottom: 1pt"&gt;Forfeited&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(23,719&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;31.93&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td&gt;Balance at January 31, 2020&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,127,822&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;$&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;26.82&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4.6&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;$&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;20.2&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt"&gt;Granted&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;381,859&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;41.51&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt"&gt;Exercised&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(338,342&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;18.43&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; padding-bottom: 1pt"&gt;Forfeited&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(23,619&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;33.88&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-bottom: 1pt"&gt;Balance at January 31, 2021&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,147,720&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;33.77&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4.9&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;28.1&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Vested or expected to vest at January 31, 2021&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,147,720&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;33.77&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4.9&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;28.1&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-bottom: 1pt"&gt;Exercisable at January 31, 2021&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;646,065&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;29.52&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4.3&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;18.6&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;The total intrinsic value of options exercised during the years ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt; was approximately &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$10.8&lt;/div&gt; million, &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$2.0&lt;/div&gt; million and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.8&lt;/div&gt; million, respectively.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Options outstanding and options exercisable as at &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021 &lt;/div&gt;by range of exercise price are as follows:&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td colspan="3" style="text-align: center"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td colspan="11" style="border-top: Black 1pt solid; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Options Outstanding&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td colspan="7" style="border-top: Black 1pt solid; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Options Exercisable&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom"&gt;  &lt;td colspan="3" style="font-style: italic; text-align: left"&gt;Range of Exercise Prices&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;Weighted &lt;br /&gt;Average Exercise Price&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;Number of Stock Options&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;Weighted Average Remaining Contractual Life (years)&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;Weighted Average Exercise Price&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;Number of Stock Options&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: center; width: 7%; padding-left: 0pt"&gt;$11.32&lt;/td&gt;  &lt;td style="text-align: center; padding-left: 0pt; width: 7%"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;#x2013;&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: center; padding-left: 0pt; width: 7%"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$22.34&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="width: 13%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;21.06&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 13%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;220,559&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 13%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2.9&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="width: 13%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;21.01&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 12%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;203,459&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: center; padding-left: 0pt"&gt;$25.65&lt;/td&gt;  &lt;td style="text-align: center; padding-left: 0pt"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;#x2013;&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: center; padding-left: 0pt"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$27.23&lt;/div&gt;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;$&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;27.22&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;217,381&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4.2&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;$&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;27.23&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;186,707&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: center; padding-left: 0pt"&gt;$37.66&lt;/td&gt;  &lt;td style="text-align: center; padding-left: 0pt"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;#x2013;&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: center; padding-left: 0pt"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$39.30&lt;/div&gt;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;$&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;38.09&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;636,869&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5.7&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;$&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;37.96&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;255,899&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: center; padding-left: 0pt"&gt;$49.04&lt;/td&gt;  &lt;td style="text-align: center; padding-left: 0pt"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;#x2013;&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: center; padding-left: 0pt"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$55.04&lt;/div&gt;&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;54.11&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;72,911&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6.7&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td colspan="3" style="text-align: center; padding-bottom: 1pt; padding-left: 12pt"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;33.77&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,147,720&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4.9&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;29.52&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;646,065&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 32 --&gt;   &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; color: black"&gt;A summary of the status of our unvested stock options &lt;/div&gt;under our shareholder-approved stock option plan &lt;div style="display: inline; color: black"&gt;as of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021 &lt;/div&gt;is presented as follows:&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td style="text-align: center"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Number of Stock Options Outstanding&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Weighted-&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Average Grant-Date Fair Value per Share&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="width: 70%"&gt;Balance at January 31, 2019&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 12%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;325,218&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="width: 12%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6.18&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt"&gt;Granted&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;367,173&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;$&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8.99&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt"&gt;Vested&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(259,269&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;$&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6.96&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; padding-bottom: 1pt"&gt;Forfeited&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(23,469&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;7.69&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td&gt;Balance at January 31, 2020&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;409,653&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;$&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8.03&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt"&gt;Granted&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;381,859&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;10.19&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt"&gt;Vested&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(266,238&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8.19&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; padding-bottom: 1pt"&gt;Forfeited&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(23,619&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4.87&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-bottom: 1pt"&gt;Balance at January 31, 2021&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;501,655&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;9.52&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Performance Share Units&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;A summary of PSU activity is as follows:&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td style="text-align: center"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Number of PSUs Outstanding&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Weighted-&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Average Granted Date Fair Value&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Weighted- Average Remaining Contractual Life (years)&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Aggregate Intrinsic&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Value&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(in millions)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="width: 48%"&gt;Balance at January 31, 2019&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;530,383&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;18.02&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5.5&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;16.6&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt"&gt;Granted&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;53,729&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;$&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;53.65&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt"&gt;Performance units issued&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;45,762&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;23.24&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td&gt;Balance at January 31, 2020&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;629,874&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;$&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;21.19&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5.0&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;$&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;28.2&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt"&gt;Granted&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;85,334&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;54.24&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt"&gt;Performance units issued&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;40,665&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;29.08&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-bottom: 1pt"&gt;Balance at January 31, 2021&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;755,873&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;25.17&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4.7&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;44.0&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Vested or expected to vest at January 31, 2021&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;755,873&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;25.17&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4.7&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;44.0&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-bottom: 1pt"&gt;Exercisable at January 31, 2021&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;562,459&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;17.21&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3.5&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;32.8&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;The aggregate intrinsic values represent the total pre-tax intrinsic value (the aggregate closing share price of our common shares on &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021) &lt;/div&gt;that would have been received by PSU holders if all PSUs had been vested on &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021.&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;As of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$4.9&lt;/div&gt; million of total unrecognized compensation costs related to non-vested awards is expected to be recognized over a weighted average period of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1.2&lt;/div&gt; years. The total fair value of PSUs vested during &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2021&lt;/div&gt; was &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$1.2&lt;/div&gt; million.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 33 --&gt;   &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Restricted Share Units&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;A summary of RSU activity is as follows:&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td style="text-align: center"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Number of RSUs Outstanding&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Weighted-&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Average Granted Date Fair Value&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Weighted- Average Remaining Contractual Life (years)&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Aggregate Intrinsic&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Value&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(in millions)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="width: 48%"&gt;Balance at January 31, 2019&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;337,066&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;14.42&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5.6&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;10.6&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; padding-bottom: 1pt"&gt;Granted&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;37,611&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;38.04&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td&gt;Balance at January 31, 2020&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;374,677&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;$&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;16.57&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5.0&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;$&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;16.8&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; padding-bottom: 1pt"&gt;Granted&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;57,518&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;43.25&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-bottom: 1pt"&gt;Balance at January 31, 2021&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;432,195&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;19.98&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4.7&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;25.2&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Vested or expected to vest at January 31, 2021&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;432,195&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;19.98&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4.7&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;25.2&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-bottom: 1pt"&gt;Exercisable at January 31, 2021&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;375,845&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;16.50&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4.1&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;21.9&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;The aggregate intrinsic values represent the total pre-tax intrinsic value (the aggregate closing share price of our common shares on &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021) &lt;/div&gt;that would have been received by RSU holders if all RSUs had been vested on &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021.&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;As of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$2.5&lt;/div&gt; million of total unrecognized compensation costs related to non-vested awards is expected to be recognized over a weighted average period of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1.8&lt;/div&gt; years. The total fair value of RSUs vested during &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2021&lt;/div&gt; was &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$1.4&lt;/div&gt; million.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Deferred Share Unit Plan&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;As at &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021, &lt;/div&gt;the total number of DSUs held by participating directors was &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;226,525&lt;/div&gt; (&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;251,422&lt;/div&gt; at &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2020), &lt;/div&gt;representing an aggregate accrued liability of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$13.8&lt;/div&gt; million (&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$11.3&lt;/div&gt; million at &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2020). &lt;/div&gt;During &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2021,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;23,369&lt;/div&gt; DSUs were granted and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;48,266&lt;/div&gt; DSUs were redeemed and settled in cash. As at &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021, &lt;/div&gt;the unrecognized aggregate liability for the unvested DSUs was &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;nil&lt;/div&gt; (&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;nil&lt;/div&gt; at &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2020). &lt;/div&gt;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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$4.6&lt;/div&gt; million, &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$5.0&lt;/div&gt; million and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$2.2&lt;/div&gt; million for the years ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019,&lt;/div&gt; respectively.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 34 --&gt;   &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Cash-Settled Restricted Share Unit Plan&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;A summary of activity under our CRSU plan is as follows:&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td style="text-align: center"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Number of CRSUs Outstanding&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Weighted- Average Remaining Contractual Life (years)&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="width: 74%"&gt;Balance at January 31, 2019&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;45,063&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1.6&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt"&gt;Granted&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;30,086&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt"&gt;Vested and settled in cash&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(32,422&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td&gt;Balance at January 31, 2020&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;42,727&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1.6&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt"&gt;Granted&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;26,629&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Vested and settled in cash&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(30,340&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; padding-bottom: 1pt"&gt;Forfeited&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(248&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-bottom: 1pt"&gt;Balance at January 31, 2021&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;38,628&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1.5&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-bottom: 1pt"&gt;Non-vested at January 31, 2021&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;38,628&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1.5&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;We recognize the compensation cost of the CRSUs ratably over the service/vesting period relating to the grant and have recorded an aggregate accrued liability of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.9&lt;/div&gt; million at &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021 (&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.8&lt;/div&gt; million at &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2020). &lt;/div&gt;As at &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021, &lt;/div&gt;the unrecognized aggregate liability for the unvested CRSUs was &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$1.5&lt;/div&gt; million (&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$1.1&lt;/div&gt; million at &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2020). &lt;/div&gt;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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$1.1&lt;/div&gt; million, &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.9&lt;/div&gt; million and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.8&lt;/div&gt; million for the years ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019,&lt;/div&gt; respectively.&lt;/div&gt;&lt;/div&gt;</us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
  <us-gaap:EarningsPerShareBasic contextRef="d_2020-02-01_2021-01-31" decimals="INF" id="c71145606" unitRef="iso4217-usd-per-xbrli-shares">0.62</us-gaap:EarningsPerShareBasic>
  <us-gaap:EarningsPerShareBasic contextRef="d_2019-02-01_2020-01-31" decimals="INF" id="c71145607" unitRef="iso4217-usd-per-xbrli-shares">0.45</us-gaap:EarningsPerShareBasic>
  <us-gaap:EarningsPerShareBasic contextRef="d_2018-02-01_2019-01-31" decimals="INF" id="c71145608" unitRef="iso4217-usd-per-xbrli-shares">0.41</us-gaap:EarningsPerShareBasic>
  <us-gaap:EarningsPerShareDiluted contextRef="d_2020-02-01_2021-01-31" decimals="INF" id="c71145609" unitRef="iso4217-usd-per-xbrli-shares">0.61</us-gaap:EarningsPerShareDiluted>
  <us-gaap:EarningsPerShareDiluted contextRef="d_2019-02-01_2020-01-31" decimals="INF" id="c71145610" unitRef="iso4217-usd-per-xbrli-shares">0.45</us-gaap:EarningsPerShareDiluted>
  <us-gaap:EarningsPerShareDiluted contextRef="d_2018-02-01_2019-01-31" decimals="INF" id="c71145611" unitRef="iso4217-usd-per-xbrli-shares">0.40</us-gaap:EarningsPerShareDiluted>
  <us-gaap:EarningsPerSharePolicyTextBlock contextRef="d_2020-02-01_2021-01-31" id="c71152875">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;Earnings per share&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 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;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:EarningsPerSharePolicyTextBlock>
  <us-gaap:EarningsPerShareTextBlock contextRef="d_2020-02-01_2021-01-31" id="s1792225">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Note &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;16&lt;/div&gt; - Earnings Per Share&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;The following table sets forth the computation of basic and diluted earnings per share (&amp;#x201c;EPS&amp;#x201d;) (number of shares in thousands):&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td style="font-style: italic"&gt;Year Ended&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style=" margin-top: 0; margin-bottom: 0"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style=" margin-top: 0; margin-bottom: 0"&gt;January 31,&lt;/div&gt; &lt;div style=" margin-top: 0; margin-bottom: 0"&gt;2021&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style=" margin-top: 0; margin-bottom: 0"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" margin-top: 0; margin-bottom: 0"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" margin-top: 0; margin-bottom: 0"&gt;January 31,&lt;/div&gt; &lt;div style=" margin-top: 0; margin-bottom: 0"&gt;2020&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" margin-top: 0; margin-bottom: 0"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" margin-top: 0; margin-bottom: 0"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" margin-top: 0; margin-bottom: 0"&gt;January 31,&lt;/div&gt; &lt;div style=" margin-top: 0; margin-bottom: 0"&gt;2019&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" margin-top: 0; margin-bottom: 0"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td colspan="3" style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td colspan="3" style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td colspan="3" style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="width: 61%; text-align: left; padding-bottom: 1pt"&gt;Net income for purposes of calculating basic and diluted earnings per share&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;52,100&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; width: 1%; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;36,997&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; width: 1%; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;31,277&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td&gt;Weighted average shares outstanding&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;84,360&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;81,659&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;76,832&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left"&gt;Dilutive effect of employee stock options&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;358&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;318&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;205&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Dilutive effect of restricted and performance share units&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,038&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;890&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;754&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Weighted average common and common equivalent shares outstanding&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;85,756&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;82,867&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;77,791&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td&gt;Earnings per share&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt"&gt;Basic&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;0.62&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;0.45&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;0.41&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; padding-bottom: 1pt"&gt;Diluted&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;0.61&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;0.45&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;0.40&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;For the years ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019,&lt;/div&gt; the application of the treasury stock method excluded &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,750,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;350,464&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;271,869&lt;/div&gt; stock options, respectively, from the calculation of diluted EPS as the assumed proceeds from the unrecognized stock-based compensation expense of such stock options that are attributed to future service periods made such stock options anti-dilutive.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;For the years ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;71,161,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5,909&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;nil&lt;/div&gt; 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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Additionally, for the years ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019,&lt;/div&gt; the application of the treasury stock method excluded PSUs and RSUs of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;43,002,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;nil&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;nil,&lt;/div&gt; respectively, from the calculation of diluted EPS as the unrecognized stock-based compensation expense of such PSUs and RSUs that are attributed to future service periods made such PSUs and RSUs anti-dilutive.&lt;/div&gt;&lt;/div&gt;</us-gaap:EarningsPerShareTextBlock>
  <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145118" unitRef="iso4217-usd">4633000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
  <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145119" unitRef="iso4217-usd">-363000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
  <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145120" unitRef="iso4217-usd">-1368000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
  <us-gaap:EffectiveIncomeTaxRateContinuingOperations contextRef="d_2020-02-01_2021-01-31" decimals="2" id="c71146599" unitRef="xbrli-pure">0.05</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
  <us-gaap:EffectiveIncomeTaxRateContinuingOperations contextRef="d_2019-02-01_2020-01-31" decimals="2" id="c71146600" unitRef="xbrli-pure">0.11</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
  <us-gaap:EffectiveIncomeTaxRateContinuingOperations contextRef="d_2018-02-01_2019-01-31" decimals="2" id="c71146601" unitRef="xbrli-pure">0.15</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
  <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate contextRef="d_2020-02-01_2021-01-31" decimals="3" id="c71145886" unitRef="xbrli-pure">0.265</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
  <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate contextRef="d_2019-02-01_2020-01-31" decimals="3" id="c71145887" unitRef="xbrli-pure">0.265</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
  <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate contextRef="d_2018-02-01_2019-01-31" decimals="3" id="c71145888" unitRef="xbrli-pure">0.265</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
  <us-gaap:EmployeeRelatedLiabilitiesCurrent contextRef="i_2021-01-31" decimals="-3" id="c71145542" unitRef="iso4217-usd">24643000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
  <us-gaap:EmployeeRelatedLiabilitiesCurrent contextRef="i_2020-01-31" decimals="-3" id="c71145543" unitRef="iso4217-usd">20613000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
  <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized contextRef="i_2021-01-31_AwardTypeAxis-EmployeeStockOptionMember" decimals="-3" id="c71146542" unitRef="iso4217-usd">5100000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
  <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized contextRef="i_2021-01-31_AwardTypeAxis-PerformanceSharesMember" decimals="-3" id="c71146561" unitRef="iso4217-usd">4900000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
  <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized contextRef="i_2021-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="-3" id="c71146565" unitRef="iso4217-usd">2500000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
  <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized contextRef="i_2021-01-31_PlanNameAxis-DeferredShareUnitPlanMember" decimals="-3" id="c71146576" unitRef="iso4217-usd">0</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
  <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized contextRef="i_2020-01-31_PlanNameAxis-DeferredShareUnitPlanMember" decimals="-3" id="c71146577" unitRef="iso4217-usd">0</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
  <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized contextRef="i_2021-01-31_PlanNameAxis-CashsettledRestrictedShareUnitMember" decimals="-3" id="c71146585" unitRef="iso4217-usd">1500000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
  <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized contextRef="i_2020-01-31_PlanNameAxis-CashsettledRestrictedShareUnitMember" decimals="-3" id="c71146586" unitRef="iso4217-usd">1100000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
  <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1 contextRef="d_2020-02-01_2021-01-31_AwardTypeAxis-EmployeeStockOptionMember" id="c71146543">P2Y255D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
  <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1 contextRef="d_2020-02-01_2021-01-31_AwardTypeAxis-PerformanceSharesMember" id="c71146562">P1Y73D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
  <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1 contextRef="d_2020-02-01_2021-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" id="c71146566">P1Y292D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
  <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71146538" unitRef="iso4217-usd">100000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions>
  <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71146539" unitRef="iso4217-usd">200000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions>
  <us-gaap:FairValueDisclosuresTextBlock contextRef="d_2020-02-01_2021-01-31" id="s1792199">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Note &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4&lt;/div&gt; &amp;#x2013; Fair Value Measurements&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;ASC Topic &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;820&lt;/div&gt; &amp;#x201c;Fair Value Measurements and Disclosures&amp;#x201d; (Topic &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;820&lt;/div&gt;) 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, &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; 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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Topic &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;820&lt;/div&gt; establishes a fair value hierarchy which prioritizes the inputs used in the valuation methodologies in measuring fair value into &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt; levels:&lt;/div&gt; &lt;table style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: top"&gt;  &lt;td style="width: 0.25in"&gt;&lt;/td&gt;  &lt;td style="width: 0.25in"&gt;&amp;#x2022;&lt;/td&gt;  &lt;td style="text-align: justify"&gt;Level &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1&amp;#x2014;inputs&lt;/div&gt; are based upon unadjusted quoted prices for identical instruments traded in active markets.&lt;/td&gt;  &lt;/tr&gt;   &lt;/table&gt; &lt;table style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: top"&gt;  &lt;td style="width: 0.25in"&gt;&lt;/td&gt;  &lt;td style="width: 0.25in"&gt;&amp;#x2022;&lt;/td&gt;  &lt;td style="text-align: justify"&gt;Level &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2&amp;#x2014;inputs&lt;/div&gt; are based upon quoted prices for similar instruments in active markets, quoted prices for identical or similar instruments in markets that are &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; 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;/td&gt;  &lt;/tr&gt;   &lt;/table&gt; &lt;table style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: top"&gt;  &lt;td style="width: 0.25in"&gt;&lt;/td&gt;  &lt;td style="width: 0.25in"&gt;&amp;#x2022;&lt;/td&gt;  &lt;td style="text-align: justify"&gt;Level &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3&amp;#x2014;inputs&lt;/div&gt; are generally unobservable and typically reflect management'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;/td&gt;  &lt;/tr&gt;   &lt;/table&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;The carrying amounts of the Company's cash, accounts receivable (net), accounts payable, accrued liabilities and income taxes payable approximate their fair value (a Level &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2&lt;/div&gt; measurement) due to their short maturities.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 Company does &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; hold derivatives for speculative purposes. As at &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021, &lt;/div&gt;we had equity derivatives for &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;226,525&lt;/div&gt; Descartes common shares with a weighted average price of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$25.70.&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;The following table shows the Company's derivative instruments measured at fair value on a recurring basis as of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021:&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Fair Value of Derivatives Designated as Hedge Instruments&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Fair Value of Derivatives Not Designated As Hedge Instruments&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Fair Value&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left"&gt;Derivative assets:&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="width: 49%; text-align: left; padding-bottom: 1pt"&gt;Equity contracts&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; width: 14%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; width: 14%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8,001&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; width: 14%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8,001&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 23 --&gt;   &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;The following table shows the Company's derivative instruments measured at fair value on a recurring basis as of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2020:&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;Fair Value of Derivatives Designated as Hedge Instruments&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;Fair Value of Derivatives Not Designated As Hedge Instruments&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;Fair Value&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left"&gt;Derivative assets:&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="width: 49%; text-align: left; padding-bottom: 1pt"&gt;Equity contracts&lt;/td&gt;  &lt;td style="width: 1%; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; width: 14%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; width: 1%; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; width: 14%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5,656&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; width: 1%; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; width: 14%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5,656&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;The fair value of equity contract derivatives is determined utilizing a valuation model based on the quoted market value of &lt;div style="display: inline; color: black"&gt;our common shares at the balance sheet date &lt;/div&gt;(Level &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2&lt;/div&gt; 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 years ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019,&lt;/div&gt; we recognized an expense (recovery) in general and administrative expenses of (&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$3.4&lt;/div&gt;) million, (&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$4.0&lt;/div&gt;) million and (&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$1.2&lt;/div&gt;) million, respectively.&lt;/div&gt;&lt;/div&gt;</us-gaap:FairValueDisclosuresTextBlock>
  <us-gaap:FairValueOfFinancialInstrumentsPolicy contextRef="d_2020-02-01_2021-01-31" id="c71152863">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Financial instruments&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Fair value of financial instruments&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;The carrying amounts of the Company's cash, accounts receivable (net), accounts payable, accrued liabilities and income taxes payable approximate their fair value due to their short maturities.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 7 --&gt; &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Derivative instruments&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;815&lt;/div&gt; &amp;#x201c;Derivatives and Hedging&amp;#x201d; (Topic &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;815&lt;/div&gt;), 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; designate our derivative instruments as hedges and as such the changes in our derivative financial instruments' 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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Foreign exchange risk&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; may &lt;/div&gt;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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Interest rate risk&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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's Acceptance (BA); or iii) LIBOR. We are exposed to interest rate fluctuations to the extent that we borrow on our credit facility.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Credit risk&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;We do &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; use any type of speculative financial instruments, including but &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; limited to foreign exchange contracts, futures, swaps and option agreements, to manage our foreign exchange or interest rate risks. In addition, we do &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; hold or issue financial instruments for trading purposes.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Equity risk&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; hold derivatives for speculative purposes.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:FairValueOfFinancialInstrumentsPolicy>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2020-02-01_2021-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember_RangeAxis-MinimumMember" id="c71146129">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2020-02-01_2021-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember_RangeAxis-MaximumMember" id="c71146130">P20Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2020-02-01_2021-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember_RangeAxis-MinimumMember" id="c71146131">P2Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2020-02-01_2021-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember_RangeAxis-MaximumMember" id="c71146132">P12Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2020-02-01_2021-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember_RangeAxis-MinimumMember" id="c71146133">P1Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2020-02-01_2021-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember_RangeAxis-MaximumMember" id="c71146134">P15Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2020-02-01_2021-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember_RangeAxis-MinimumMember" id="c71146135">P2Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2020-02-01_2021-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember_RangeAxis-MaximumMember" id="c71146136">P12Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-PeoplevoxMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" id="c71145220">P10Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-KontainersMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" id="c71145221">P12Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" id="c71145222">P13Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-PeoplevoxMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember" id="c71145223">P6Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-KontainersMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember" id="c71145224">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember" id="c71145225">P6Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-KontainersMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember" id="c71145227">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember" id="c71145228">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-PeoplevoxMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" id="c71145229">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-KontainersMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" id="c71145230">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" id="c71145231">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" id="c71153056">P14Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" id="c71153057">P13Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-StepcomMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" id="c71153058">P9Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-BesttransportMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" id="c71153059">P12Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember" id="c71153060">P7Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember" id="c71153061">P6Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-BesttransportMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember" id="c71153063">P6Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember" id="c71153064">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember" id="c71153065">P8Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-StepcomMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember" id="c71153066">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-BesttransportMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember" id="c71153067">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" id="c71153068">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" id="c71153069">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-StepcomMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" id="c71153070">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-BesttransportMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" id="c71153071">P2Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-AljexSoftwareIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" id="c71153218">P13Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-VelocityMailMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" id="c71153219">P12Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-PinPointMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" id="c71153220">P9Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-AljexSoftwareIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember" id="c71153221">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-VelocityMailMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember" id="c71153222">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-AljexSoftwareIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember" id="c71153224">P8Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-VelocityMailMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember" id="c71153225">P4Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-PinPointMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember" id="c71153226">P8Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-AljexSoftwareIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" id="c71153227">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-VelocityMailMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" id="c71153228">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-PinPointMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" id="c71153229">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="i_2021-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" decimals="-3" id="c71145508" unitRef="iso4217-usd">119361000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
  <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="i_2020-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" decimals="-3" id="c71145509" unitRef="iso4217-usd">98241000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
  <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="i_2021-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-DevelopedTechnologyRightsMember" decimals="-3" id="c71145510" unitRef="iso4217-usd">183539000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
  <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="i_2020-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-DevelopedTechnologyRightsMember" decimals="-3" id="c71145511" unitRef="iso4217-usd">142757000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
  <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="i_2021-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember" decimals="-3" id="c71145512" unitRef="iso4217-usd">5996000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
  <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="i_2020-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember" decimals="-3" id="c71145513" unitRef="iso4217-usd">5124000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
  <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="i_2021-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" decimals="-3" id="c71145514" unitRef="iso4217-usd">6535000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
  <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="i_2020-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" decimals="-3" id="c71145515" unitRef="iso4217-usd">4617000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
  <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="i_2021-01-31" decimals="-3" id="c71145516" unitRef="iso4217-usd">315431000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
  <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="i_2020-01-31" decimals="-3" id="c71145517" unitRef="iso4217-usd">250739000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
  <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive contextRef="i_2021-01-31" decimals="-5" id="c71146439" unitRef="iso4217-usd">46700000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive>
  <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths contextRef="i_2021-01-31" decimals="-5" id="c71146429" unitRef="iso4217-usd">53900000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths>
  <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive contextRef="i_2021-01-31" decimals="-5" id="c71146437" unitRef="iso4217-usd">27200000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive>
  <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour contextRef="i_2021-01-31" decimals="-5" id="c71146435" unitRef="iso4217-usd">31500000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour>
  <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree contextRef="i_2021-01-31" decimals="-5" id="c71146433" unitRef="iso4217-usd">34300000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree>
  <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo contextRef="i_2021-01-31" decimals="-5" id="c71146431" unitRef="iso4217-usd">46400000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo>
  <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="i_2021-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" decimals="-3" id="c71145498" unitRef="iso4217-usd">240479000</us-gaap:FiniteLivedIntangibleAssetsGross>
  <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="i_2020-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" decimals="-3" id="c71145499" unitRef="iso4217-usd">226514000</us-gaap:FiniteLivedIntangibleAssetsGross>
  <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="i_2021-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-DevelopedTechnologyRightsMember" decimals="-3" id="c71145500" unitRef="iso4217-usd">295161000</us-gaap:FiniteLivedIntangibleAssetsGross>
  <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="i_2020-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-DevelopedTechnologyRightsMember" decimals="-3" id="c71145501" unitRef="iso4217-usd">262614000</us-gaap:FiniteLivedIntangibleAssetsGross>
  <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="i_2021-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember" decimals="-3" id="c71145502" unitRef="iso4217-usd">8844000</us-gaap:FiniteLivedIntangibleAssetsGross>
  <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="i_2020-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember" decimals="-3" id="c71145503" unitRef="iso4217-usd">8582000</us-gaap:FiniteLivedIntangibleAssetsGross>
  <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="i_2021-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" decimals="-3" id="c71145504" unitRef="iso4217-usd">10939000</us-gaap:FiniteLivedIntangibleAssetsGross>
  <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="i_2020-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" decimals="-3" id="c71145505" unitRef="iso4217-usd">9985000</us-gaap:FiniteLivedIntangibleAssetsGross>
  <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="i_2021-01-31" decimals="-3" id="c71145506" unitRef="iso4217-usd">555423000</us-gaap:FiniteLivedIntangibleAssetsGross>
  <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="i_2020-01-31" decimals="-3" id="c71145507" unitRef="iso4217-usd">507695000</us-gaap:FiniteLivedIntangibleAssetsGross>
  <us-gaap:FiniteLivedIntangibleAssetsNet contextRef="i_2021-01-31" decimals="-3" id="c71146428" unitRef="iso4217-usd">239992000</us-gaap:FiniteLivedIntangibleAssetsNet>
  <us-gaap:FiniteLivedIntangibleAssetsNet contextRef="i_2020-01-31" decimals="-3" id="c71145519" unitRef="iso4217-usd">256956000</us-gaap:FiniteLivedIntangibleAssetsNet>
  <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71146102" unitRef="iso4217-usd">800000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
  <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71146103" unitRef="iso4217-usd">600000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
  <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71146104" unitRef="iso4217-usd">-400000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
  <us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock contextRef="d_2020-02-01_2021-01-31" id="c71152860">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Foreign currency translation&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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' 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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 year ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021, &lt;/div&gt;foreign currency re-measurement loss of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.8&lt;/div&gt; million was included in net income (&lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2020 &amp;#x2013; &lt;/div&gt;loss of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.6&lt;/div&gt; million; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2019 &amp;#x2013; &lt;/div&gt;loss of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.4&lt;/div&gt; million).&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock>
  <us-gaap:GeneralAndAdministrativeExpense contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71144943" unitRef="iso4217-usd">36267000</us-gaap:GeneralAndAdministrativeExpense>
  <us-gaap:GeneralAndAdministrativeExpense contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71144944" unitRef="iso4217-usd">34628000</us-gaap:GeneralAndAdministrativeExpense>
  <us-gaap:GeneralAndAdministrativeExpense contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71144945" unitRef="iso4217-usd">30012000</us-gaap:GeneralAndAdministrativeExpense>
  <us-gaap:Goodwill contextRef="i_2021-01-31_BusinessAcquisitionAxis-PeoplevoxMember" decimals="-3" id="c71145209" unitRef="iso4217-usd">15182000</us-gaap:Goodwill>
  <us-gaap:Goodwill contextRef="i_2021-01-31_BusinessAcquisitionAxis-KontainersMember" decimals="-3" id="c71145210" unitRef="iso4217-usd">3461000</us-gaap:Goodwill>
  <us-gaap:Goodwill contextRef="i_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember" decimals="-3" id="c71145211" unitRef="iso4217-usd">10327000</us-gaap:Goodwill>
  <us-gaap:Goodwill contextRef="i_2021-01-31_BusinessAcquisitionAxis-The2021AcquisitionsMember" decimals="-3" id="c71145212" unitRef="iso4217-usd">28970000</us-gaap:Goodwill>
  <us-gaap:Goodwill contextRef="i_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember" decimals="-3" id="c71153038" unitRef="iso4217-usd">118785000</us-gaap:Goodwill>
  <us-gaap:Goodwill contextRef="i_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember" decimals="-3" id="c71153039" unitRef="iso4217-usd">12670000</us-gaap:Goodwill>
  <us-gaap:Goodwill contextRef="i_2020-01-31_BusinessAcquisitionAxis-StepcomMember" decimals="-3" id="c71153040" unitRef="iso4217-usd">10019000</us-gaap:Goodwill>
  <us-gaap:Goodwill contextRef="i_2020-01-31_BusinessAcquisitionAxis-BesttransportMember" decimals="-3" id="c71153041" unitRef="iso4217-usd">5513000</us-gaap:Goodwill>
  <us-gaap:Goodwill contextRef="i_2020-01-31_BusinessAcquisitionAxis-The2020AcquisitionsMember" decimals="-3" id="c71153042" unitRef="iso4217-usd">146987000</us-gaap:Goodwill>
  <us-gaap:Goodwill contextRef="i_2019-01-31_BusinessAcquisitionAxis-AljexSoftwareIncMember" decimals="-3" id="c71153203" unitRef="iso4217-usd">18903000</us-gaap:Goodwill>
  <us-gaap:Goodwill contextRef="i_2019-01-31_BusinessAcquisitionAxis-VelocityMailMember" decimals="-3" id="c71153204" unitRef="iso4217-usd">8448000</us-gaap:Goodwill>
  <us-gaap:Goodwill contextRef="i_2019-01-31_BusinessAcquisitionAxis-PinPointMember" decimals="-3" id="c71153205" unitRef="iso4217-usd">6306000</us-gaap:Goodwill>
  <us-gaap:Goodwill contextRef="i_2019-01-31_BusinessAcquisitionAxis-The2019AcquisitionsMember" decimals="-3" id="c71153206" unitRef="iso4217-usd">33657000</us-gaap:Goodwill>
  <us-gaap:Goodwill contextRef="i_2020-01-31" decimals="-3" id="c71145522" unitRef="iso4217-usd">523690000</us-gaap:Goodwill>
  <us-gaap:Goodwill contextRef="i_2019-01-31" decimals="-3" id="c71145523" unitRef="iso4217-usd">378178000</us-gaap:Goodwill>
  <us-gaap:Goodwill contextRef="i_2021-01-31" decimals="-3" id="c71145540" unitRef="iso4217-usd">565177000</us-gaap:Goodwill>
  <us-gaap:GoodwillAcquiredDuringPeriod contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-VisualComplianceMember" id="c71145524" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:GoodwillAcquiredDuringPeriod contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember" decimals="-3" id="c71145525" unitRef="iso4217-usd">118785000</us-gaap:GoodwillAcquiredDuringPeriod>
  <us-gaap:GoodwillAcquiredDuringPeriod contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember" id="c71145526" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:GoodwillAcquiredDuringPeriod contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember" decimals="-3" id="c71145527" unitRef="iso4217-usd">12670000</us-gaap:GoodwillAcquiredDuringPeriod>
  <us-gaap:GoodwillAcquiredDuringPeriod contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-StepcomMember" id="c71145528" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:GoodwillAcquiredDuringPeriod contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-StepcomMember" decimals="-3" id="c71145529" unitRef="iso4217-usd">10019000</us-gaap:GoodwillAcquiredDuringPeriod>
  <us-gaap:GoodwillAcquiredDuringPeriod contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-BesttransportMember" id="c71145530" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:GoodwillAcquiredDuringPeriod contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-BesttransportMember" decimals="-3" id="c71145531" unitRef="iso4217-usd">5513000</us-gaap:GoodwillAcquiredDuringPeriod>
  <us-gaap:GoodwillAcquiredDuringPeriod contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-PeoplevoxMember" decimals="-3" id="c71145532" unitRef="iso4217-usd">15182000</us-gaap:GoodwillAcquiredDuringPeriod>
  <us-gaap:GoodwillAcquiredDuringPeriod contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-PeoplevoxMember" id="c71145533" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:GoodwillAcquiredDuringPeriod contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-KontainersMember" decimals="-3" id="c71145534" unitRef="iso4217-usd">3461000</us-gaap:GoodwillAcquiredDuringPeriod>
  <us-gaap:GoodwillAcquiredDuringPeriod contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-KontainersMember" id="c71145535" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:GoodwillAcquiredDuringPeriod contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember" decimals="-3" id="c71145536" unitRef="iso4217-usd">10327000</us-gaap:GoodwillAcquiredDuringPeriod>
  <us-gaap:GoodwillAcquiredDuringPeriod contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-ShipTrackMember" id="c71145537" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:GoodwillAndIntangibleAssetsPolicyTextBlock contextRef="d_2020-02-01_2021-01-31" id="c71152867">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;Goodwill and intangible assets&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; subject to amortization.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;We test for impairment of goodwill at least annually on &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; October 31&lt;/div&gt;&lt;div style="display: inline; bottom:.33em; font-size: 82%; position: relative; vertical-align: baseline;"&gt;st&lt;/div&gt; of each year and at any other time if any event occurs or circumstances change that would more likely than &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; reduce our fair value below our reporting unit'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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;third&lt;/div&gt; quarter of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2021&lt;/div&gt; and concluded that it was more likely than &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; that the fair value of the goodwill was greater than the carrying value. As a result, &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;no&lt;/div&gt; impairment of goodwill was recorded in fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2021&lt;/div&gt; (&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;no&lt;/div&gt;&lt;/div&gt; impairments were recorded for fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&lt;/div&gt; or fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt;).&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; 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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Amortization of our intangible assets is generally recorded at the following rates:&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0" align="center"&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="width: 50%; text-align: left"&gt;Customer agreements and relationships&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 49%; text-align: left"&gt;Straight-line over &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt; to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;twenty&lt;/div&gt; years&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left"&gt;Existing technologies&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;Straight-line over &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;two&lt;/div&gt; to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;twelve&lt;/div&gt; years&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left"&gt;Trade names&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;Straight-line over &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;one&lt;/div&gt; to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;fifteen&lt;/div&gt; years&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left"&gt;Non-compete covenants&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;Straight-line over &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;two&lt;/div&gt; to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;twelve&lt;/div&gt; years&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:GoodwillAndIntangibleAssetsPolicyTextBlock>
  <us-gaap:GoodwillDisclosureTextBlock contextRef="d_2020-02-01_2021-01-31" id="s1792212">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Note &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;10&lt;/div&gt; &amp;#x2013; Goodwill&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2019:&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td colspan="3" style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td colspan="3" style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td colspan="3" style="font-weight: bold; text-align: right; border-bottom: Black 1pt solid"&gt;2021&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td colspan="3" style="text-align: right; border-bottom: Black 1pt solid"&gt;2020&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="width: 74%"&gt;Balance at beginning of period&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;523,690&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;378,178&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Acquisition of Visual Compliance&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;118,785&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt"&gt;Acquisition of CORE&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12,670&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt"&gt;Acquisition of STEPcom&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;10,019&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt"&gt;Acquisition of BestTransport&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5,513&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt"&gt;Acquisition of Peoplevox&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;15,182&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt"&gt;Acquisition of Kontainers&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,461&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt"&gt;Acquisition of ShipTrack&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;10,327&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt"&gt;Adjustments on account of foreign exchange&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12,517&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,475&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-bottom: 1pt"&gt;Balance at end of period&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;565,177&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;523,690&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt;&lt;/div&gt;</us-gaap:GoodwillDisclosureTextBlock>
  <us-gaap:GoodwillImpairmentLoss contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71146123" unitRef="iso4217-usd">0</us-gaap:GoodwillImpairmentLoss>
  <us-gaap:GoodwillImpairmentLoss contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71146125" unitRef="iso4217-usd">0</us-gaap:GoodwillImpairmentLoss>
  <us-gaap:GoodwillImpairmentLoss contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71152831" unitRef="iso4217-usd">0</us-gaap:GoodwillImpairmentLoss>
  <us-gaap:GoodwillTranslationAndPurchaseAccountingAdjustments contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145538" unitRef="iso4217-usd">12517000</us-gaap:GoodwillTranslationAndPurchaseAccountingAdjustments>
  <us-gaap:GoodwillTranslationAndPurchaseAccountingAdjustments contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145539" unitRef="iso4217-usd">-1475000</us-gaap:GoodwillTranslationAndPurchaseAccountingAdjustments>
  <us-gaap:GrossProfit contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71144934" unitRef="iso4217-usd">258754000</us-gaap:GrossProfit>
  <us-gaap:GrossProfit contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71144935" unitRef="iso4217-usd">240070000</us-gaap:GrossProfit>
  <us-gaap:GrossProfit contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71144936" unitRef="iso4217-usd">200177000</us-gaap:GrossProfit>
  <us-gaap:ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock contextRef="d_2020-02-01_2021-01-31" id="c71152866">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Impairment of long-lived assets&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; may &lt;/div&gt;be impairment. Circumstances which could trigger a review include, but are &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; 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. &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;No&lt;/div&gt; impairment of long-lived assets has been identified or recorded in our consolidated statements of operations for any of the fiscal years presented.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock>
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145883" unitRef="iso4217-usd">70369000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145884" unitRef="iso4217-usd">48033000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145885" unitRef="iso4217-usd">39510000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments contextRef="d_2020-02-01_2021-01-31_IncomeTaxAuthorityAxis-CA" decimals="-3" id="c71145814" unitRef="iso4217-usd">31307000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments contextRef="d_2019-02-01_2020-01-31_IncomeTaxAuthorityAxis-CA" decimals="-3" id="c71145815" unitRef="iso4217-usd">19557000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments contextRef="d_2018-02-01_2019-01-31_IncomeTaxAuthorityAxis-CA" decimals="-3" id="c71145816" unitRef="iso4217-usd">16715000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments contextRef="d_2020-02-01_2021-01-31_IncomeTaxAuthorityAxis-US" decimals="-3" id="c71145817" unitRef="iso4217-usd">26072000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments contextRef="d_2019-02-01_2020-01-31_IncomeTaxAuthorityAxis-US" decimals="-3" id="c71145818" unitRef="iso4217-usd">19962000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments contextRef="d_2018-02-01_2019-01-31_IncomeTaxAuthorityAxis-US" decimals="-3" id="c71145819" unitRef="iso4217-usd">11077000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments contextRef="d_2020-02-01_2021-01-31_IncomeTaxAuthorityAxis-OtherCountriesMember" decimals="-3" id="c71145820" unitRef="iso4217-usd">12990000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments contextRef="d_2019-02-01_2020-01-31_IncomeTaxAuthorityAxis-OtherCountriesMember" decimals="-3" id="c71145821" unitRef="iso4217-usd">8516000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments contextRef="d_2018-02-01_2019-01-31_IncomeTaxAuthorityAxis-OtherCountriesMember" decimals="-3" id="c71145822" unitRef="iso4217-usd">11718000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
  <us-gaap:IncomeTaxDisclosureTextBlock contextRef="d_2020-02-01_2021-01-31" id="s1792236">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Note &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;18&lt;/div&gt; - Income Taxes&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Income before income taxes is earned in the following tax jurisdictions:&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td style="font-style: italic"&gt;Year Ended&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2019&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td colspan="3" style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td colspan="3" style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td colspan="3" style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="width: 61%"&gt;Canada&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;31,307&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;19,557&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;16,715&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left"&gt;United States&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;26,072&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;19,962&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;11,077&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Other countries&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12,990&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8,516&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;11,718&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;70,369&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;48,035&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;39,510&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 35 --&gt;   &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Income tax expense is incurred in the following jurisdictions:&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td style="font-style: italic"&gt;Year Ended&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2019&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left"&gt;Current income tax expense&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; width: 61%"&gt;Canada&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,875&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,020&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,037&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;United States&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(3,050&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,496&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,298&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt"&gt;Other countries&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4,921&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;779&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,707&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,746&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5,295&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6,042&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left"&gt;Deferred income tax expense (recovery)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt"&gt;Canada&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;7,047&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5,008&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,531&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;United States&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;9,537&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,390&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;67&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt"&gt;Other countries&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(2,061&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(655&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(407&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;14,523&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5,743&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,191&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;18,269&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;11,038&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8,233&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Income tax expense for &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2021,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt; was &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;26%,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;23%&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;21%&lt;/div&gt; of income before income taxes, respectively, with current income tax expense being &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5%,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;11%&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;15%&lt;/div&gt; of income before income taxes, respectively.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Current income tax expense decreased in &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2021&lt;/div&gt; compared to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&lt;/div&gt; 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$9.3&lt;/div&gt;&lt;/div&gt; million in current income tax expense in &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2021&lt;/div&gt; 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.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Current income tax expense decreased in &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&lt;/div&gt; compared to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt; primarily due to utilization of tax attributes acquired in &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020.&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Deferred income tax expense increased in &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2021&lt;/div&gt; compared to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&lt;/div&gt; primarily due to a voluntary change we elected to adopt in accounting for deferred revenue for income tax purposes in the United States.&amp;nbsp;This increase was partially offset by a release in valuation allowance for other jurisdictions.&amp;nbsp;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Deferred income tax expense increased in &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&lt;/div&gt; compared to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt; primarily due to utilization of tax attributes acquired in &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020.&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 36 --&gt;   &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;The components of the deferred income tax assets and liabilities are as follows:&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td&gt;Assets&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; width: 74%; text-align: left"&gt;Accrued liabilities not currently deductible&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4,471&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;14,838&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Accumulated net operating losses&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12,866&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;10,579&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Corporate minimum taxes&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,596&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Difference between tax and accounting basis of property and equipment&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;23,754&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;33,929&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt"&gt;Research and development and other tax credits and expenses&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,649&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;756&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left"&gt;Total deferred income tax assets&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;44,336&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;60,102&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td&gt;Liabilities&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Difference between tax and accounting basis of intangible assets&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(45,030&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(41,381&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Difference between tax and accounting basis of property and equipment&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt"&gt;Other temporary differences&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(2,109&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,716&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Total deferred income tax liabilities&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(47,139&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(43,097&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left"&gt;Net deferred income taxes&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(2,803&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;17,005&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt"&gt;Valuation allowance&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(11,365&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(10,470&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Net deferred income taxes, net of valuation allowance&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(14,168&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6,535&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;As at &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021, &lt;/div&gt;we have &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; accrued for foreign withholding taxes and Canadian income taxes applicable to approximately &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$432.7&lt;/div&gt; 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;no&lt;/div&gt; longer be indefinitely invested outside Canada.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td style="font-style: italic"&gt;Year Ended&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2019&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="width: 61%; text-align: left"&gt;Income before income taxes&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;70,369&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;48,033&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;39,510&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left"&gt;Combined basic Canadian statutory rates&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;26.5&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;%&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;26.5&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;%&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;26.5&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;%&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left"&gt;Income tax expense based on the above rates&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;18,648&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12,729&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;10,470&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left"&gt;Increase (decrease) in income taxes resulting from:&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Permanent differences including amortization of intangible assets&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;875&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(673&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(133&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Effect of differences between Canadian and foreign tax rates&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(600&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(274&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(172&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Effect of rate changes on current year timing differences&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,063&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(609&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(245&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Adjustments relating to previous periods&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,034&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;94&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(973&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Increase (decrease) in accruals for uncertain tax positions&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,289&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,042&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(515&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Valuation allowance&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;254&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;692&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(344&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Stock based compensation&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;100&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;352&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;231&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt"&gt;Other, including foreign exchange&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(200&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(231&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(86&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Income tax expense&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;18,269&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;11,038&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8,233&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 37 --&gt;   &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;We have income tax loss carry forwards which expire as follows:&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td style="text-align: left; font-style: italic"&gt;Expiry year&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Canada&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;United States&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;EMEA&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Asia Pacific&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Total&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="width: 16%; text-align: left; padding-left: 0pt"&gt;2022&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 14%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 14%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 14%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 14%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;285&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 13%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;285&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left; padding-left: 0pt"&gt;2023&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;341&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;50&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;394&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left; padding-left: 0pt"&gt;2024&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;16&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;138&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;67&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;221&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left; padding-left: 0pt"&gt;2025&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;51&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;51&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left; padding-left: 0pt"&gt;2026&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left; padding-left: 0pt"&gt;Thereafter&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6,969&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,807&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;47,832&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,434&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;60,042&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left; padding-bottom: 1pt; padding-left: 9pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6,969&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,877&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;48,311&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,836&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;60,993&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;The following is a tabular reconciliation of the total estimated liability associated with uncertain tax positions taken:&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="width: 74%; text-align: left"&gt;Liability, beginning of year&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6,650&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;7,824&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Gross increases &amp;#x2013; current period&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,502&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;139&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt"&gt;Lapsing due to statutes of limitations&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(759&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,313&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Liability, end of year&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8,393&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6,650&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;We have identified accruals of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$8.4&lt;/div&gt; million with respect to uncertain tax positions as at &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021. &lt;/div&gt;It is possible that these accruals for uncertain tax positions will &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; be required in which case up to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$8.2&lt;/div&gt; million of the recorded liability will decrease the effective tax rate in future years if this liability is reversed. We believe that it is reasonably possible that &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$1.5&lt;/div&gt; million of the uncertain tax positions could decrease tax expense in the next &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12&lt;/div&gt; months relating primarily to tax years becoming statute barred for purposes of future tax examinations by local taxing jurisdictions.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;We recognize accrued interest and penalties related to uncertain tax positions as a current tax expense. As at &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2020, &lt;/div&gt;the unrecognized tax positions have resulted in &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;no&lt;/div&gt; material liability for estimated interest and penalties.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Descartes and our subsidiaries file their tax returns as prescribed by the tax laws of the jurisdictions within which they operate. We are &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;no&lt;/div&gt; longer subject to income tax examinations by tax authorities in our major tax jurisdictions as follows:&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;Years No Longer Subject to Audit&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left"&gt;Tax Jurisdiction&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="width: 51%; text-align: left"&gt;United States Federal&lt;/td&gt;  &lt;td style="width: 49%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2017 and prior&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td&gt;Canada&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2018 and prior&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left"&gt;United Kingdom&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2017 and prior&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td&gt;Sweden&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2014 and prior&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td&gt;Norway&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019 and prior&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td&gt;Netherlands&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2014 and prior&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td&gt;Belgium&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2016 and prior&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt;&lt;/div&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
  <us-gaap:IncomeTaxExpenseBenefit contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145916" unitRef="iso4217-usd">18269000</us-gaap:IncomeTaxExpenseBenefit>
  <us-gaap:IncomeTaxExpenseBenefit contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145917" unitRef="iso4217-usd">11038000</us-gaap:IncomeTaxExpenseBenefit>
  <us-gaap:IncomeTaxExpenseBenefit contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145918" unitRef="iso4217-usd">8233000</us-gaap:IncomeTaxExpenseBenefit>
  <us-gaap:IncomeTaxPolicyTextBlock contextRef="d_2020-02-01_2021-01-31" id="c71152874">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;Income taxes&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; that a deferred tax asset will &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; 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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;We evaluate our uncertain tax positions by using a &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;two&lt;/div&gt;-step approach to recognize and measure uncertain tax positions and provisions for income taxes.&amp;nbsp;The &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;first&lt;/div&gt; step is to evaluate the tax position for recognition by determining if the weight of available evidence indicates it is more likely than &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not,&lt;/div&gt; 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;second&lt;/div&gt; 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; to be realized. The tax position is derecognized when it is &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;no&lt;/div&gt; longer more likely than &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; 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;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:IncomeTaxPolicyTextBlock>
  <us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145907" unitRef="iso4217-usd">254000</us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance>
  <us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145908" unitRef="iso4217-usd">692000</us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance>
  <us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145909" unitRef="iso4217-usd">-344000</us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance>
  <us-gaap:IncomeTaxReconciliationChangeInEnactedTaxRate contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145898" unitRef="iso4217-usd">-1063000</us-gaap:IncomeTaxReconciliationChangeInEnactedTaxRate>
  <us-gaap:IncomeTaxReconciliationChangeInEnactedTaxRate contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145899" unitRef="iso4217-usd">-609000</us-gaap:IncomeTaxReconciliationChangeInEnactedTaxRate>
  <us-gaap:IncomeTaxReconciliationChangeInEnactedTaxRate contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145900" unitRef="iso4217-usd">-245000</us-gaap:IncomeTaxReconciliationChangeInEnactedTaxRate>
  <us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145895" unitRef="iso4217-usd">-600000</us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential>
  <us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145896" unitRef="iso4217-usd">-274000</us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential>
  <us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145897" unitRef="iso4217-usd">-172000</us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential>
  <us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145889" unitRef="iso4217-usd">18648000</us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate>
  <us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145890" unitRef="iso4217-usd">12729000</us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate>
  <us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145891" unitRef="iso4217-usd">10470000</us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate>
  <us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145892" unitRef="iso4217-usd">875000</us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization>
  <us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145893" unitRef="iso4217-usd">-673000</us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization>
  <us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145894" unitRef="iso4217-usd">-133000</us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization>
  <us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145910" unitRef="iso4217-usd">100000</us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost>
  <us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145911" unitRef="iso4217-usd">352000</us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost>
  <us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145912" unitRef="iso4217-usd">231000</us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost>
  <us-gaap:IncomeTaxReconciliationOtherAdjustments contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145913" unitRef="iso4217-usd">-200000</us-gaap:IncomeTaxReconciliationOtherAdjustments>
  <us-gaap:IncomeTaxReconciliationOtherAdjustments contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145914" unitRef="iso4217-usd">-231000</us-gaap:IncomeTaxReconciliationOtherAdjustments>
  <us-gaap:IncomeTaxReconciliationOtherAdjustments contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145915" unitRef="iso4217-usd">-86000</us-gaap:IncomeTaxReconciliationOtherAdjustments>
  <us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145901" unitRef="iso4217-usd">-1034000</us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes>
  <us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145902" unitRef="iso4217-usd">94000</us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes>
  <us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145903" unitRef="iso4217-usd">-973000</us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes>
  <us-gaap:IncomeTaxesPaidNet contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145133" unitRef="iso4217-usd">8214000</us-gaap:IncomeTaxesPaidNet>
  <us-gaap:IncomeTaxesPaidNet contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145134" unitRef="iso4217-usd">8946000</us-gaap:IncomeTaxesPaidNet>
  <us-gaap:IncomeTaxesPaidNet contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145135" unitRef="iso4217-usd">7862000</us-gaap:IncomeTaxesPaidNet>
  <us-gaap:IncreaseDecreaseInAccountsPayable contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71146032" unitRef="iso4217-usd">-686000</us-gaap:IncreaseDecreaseInAccountsPayable>
  <us-gaap:IncreaseDecreaseInAccountsPayable contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71146033" unitRef="iso4217-usd">1768000</us-gaap:IncreaseDecreaseInAccountsPayable>
  <us-gaap:IncreaseDecreaseInAccountsPayable contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71146034" unitRef="iso4217-usd">-1065000</us-gaap:IncreaseDecreaseInAccountsPayable>
  <us-gaap:IncreaseDecreaseInAccountsReceivable contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71146020" unitRef="iso4217-usd">-143000</us-gaap:IncreaseDecreaseInAccountsReceivable>
  <us-gaap:IncreaseDecreaseInAccountsReceivable contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71146021" unitRef="iso4217-usd">-3733000</us-gaap:IncreaseDecreaseInAccountsReceivable>
  <us-gaap:IncreaseDecreaseInAccountsReceivable contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71146022" unitRef="iso4217-usd">135000</us-gaap:IncreaseDecreaseInAccountsReceivable>
  <us-gaap:IncreaseDecreaseInAccruedLiabilities contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71146035" unitRef="iso4217-usd">-999000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
  <us-gaap:IncreaseDecreaseInAccruedLiabilities contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71146036" unitRef="iso4217-usd">3265000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
  <us-gaap:IncreaseDecreaseInAccruedLiabilities contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71146037" unitRef="iso4217-usd">2570000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
  <us-gaap:IncreaseDecreaseInDeferredRevenue contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71146044" unitRef="iso4217-usd">5877000</us-gaap:IncreaseDecreaseInDeferredRevenue>
  <us-gaap:IncreaseDecreaseInDeferredRevenue contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71146045" unitRef="iso4217-usd">-4184000</us-gaap:IncreaseDecreaseInDeferredRevenue>
  <us-gaap:IncreaseDecreaseInDeferredRevenue contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71146046" unitRef="iso4217-usd">2047000</us-gaap:IncreaseDecreaseInDeferredRevenue>
  <us-gaap:IncreaseDecreaseInIncomeTaxes contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71146038" unitRef="iso4217-usd">3835000</us-gaap:IncreaseDecreaseInIncomeTaxes>
  <us-gaap:IncreaseDecreaseInIncomeTaxes contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71146039" unitRef="iso4217-usd">-1550000</us-gaap:IncreaseDecreaseInIncomeTaxes>
  <us-gaap:IncreaseDecreaseInIncomeTaxes contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71146040" unitRef="iso4217-usd">-2423000</us-gaap:IncreaseDecreaseInIncomeTaxes>
  <us-gaap:IncreaseDecreaseInInventories contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71146029" unitRef="iso4217-usd">-99000</us-gaap:IncreaseDecreaseInInventories>
  <us-gaap:IncreaseDecreaseInInventories contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71146030" unitRef="iso4217-usd">345000</us-gaap:IncreaseDecreaseInInventories>
  <us-gaap:IncreaseDecreaseInInventories contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71146031" unitRef="iso4217-usd">-74000</us-gaap:IncreaseDecreaseInInventories>
  <us-gaap:IncreaseDecreaseInOperatingCapital contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145085" unitRef="iso4217-usd">3575000</us-gaap:IncreaseDecreaseInOperatingCapital>
  <us-gaap:IncreaseDecreaseInOperatingCapital contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145086" unitRef="iso4217-usd">5256000</us-gaap:IncreaseDecreaseInOperatingCapital>
  <us-gaap:IncreaseDecreaseInOperatingCapital contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145087" unitRef="iso4217-usd">3849000</us-gaap:IncreaseDecreaseInOperatingCapital>
  <us-gaap:IncreaseDecreaseInOtherReceivables contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71146023" unitRef="iso4217-usd">7098000</us-gaap:IncreaseDecreaseInOtherReceivables>
  <us-gaap:IncreaseDecreaseInOtherReceivables contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71146024" unitRef="iso4217-usd">2547000</us-gaap:IncreaseDecreaseInOtherReceivables>
  <us-gaap:IncreaseDecreaseInOtherReceivables contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71146025" unitRef="iso4217-usd">451000</us-gaap:IncreaseDecreaseInOtherReceivables>
  <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71146026" unitRef="iso4217-usd">5029000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
  <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71146027" unitRef="iso4217-usd">5942000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
  <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71146028" unitRef="iso4217-usd">4466000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
  <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements contextRef="d_2020-02-01_2021-01-31_AwardTypeAxis-EmployeeStockOptionMember" decimals="-3" id="c71145597" unitRef="xbrli-shares">358000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
  <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements contextRef="d_2019-02-01_2020-01-31_AwardTypeAxis-EmployeeStockOptionMember" decimals="-3" id="c71145598" unitRef="xbrli-shares">318000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
  <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements contextRef="d_2018-02-01_2019-01-31_AwardTypeAxis-EmployeeStockOptionMember" decimals="-3" id="c71145599" unitRef="xbrli-shares">205000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
  <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements contextRef="d_2020-02-01_2021-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="-3" id="c71145600" unitRef="xbrli-shares">1038000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
  <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements contextRef="d_2019-02-01_2020-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="-3" id="c71145601" unitRef="xbrli-shares">890000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
  <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements contextRef="d_2018-02-01_2019-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="-3" id="c71145602" unitRef="xbrli-shares">754000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
  <us-gaap:IntangibleAssetsDisclosureTextBlock contextRef="d_2020-02-01_2021-01-31" id="s1792210">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Note &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;9&lt;/div&gt; - Intangible Assets&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom"&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td&gt;Cost&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; width: 74%"&gt;Customer agreements and relationships&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;240,479&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;226,514&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt"&gt;Existing technology&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;295,161&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;262,614&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt"&gt;Trade names&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8,844&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8,582&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt"&gt;Non-compete covenants&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;10,939&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;9,985&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;555,423&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;507,695&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left"&gt;Accumulated amortization&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt"&gt;Customer agreements and relationships&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;119,361&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;98,241&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt"&gt;Existing technology&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;183,539&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;142,757&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt"&gt;Trade names&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5,996&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5,124&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt"&gt;Non-compete covenants&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6,535&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4,617&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;315,431&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;250,739&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-bottom: 1pt"&gt;Net&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;239,992&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;256,956&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Intangible assets related to our acquisitions are recorded at their fair value at the acquisition date. The change in intangible assets during the year ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021 &lt;/div&gt;is primarily due to the acquisitions of Peoplevox, Kontainers and ShipTrack, partially offset by amortization. The balance of the change in intangible assets is due to foreign currency translation.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 25 --&gt;   &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Intangible assets with a finite life are amortized into income over their useful lives. Amortization expense for existing intangible assets is expected to be &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$240.0&lt;/div&gt; million over the following periods: &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$53.9&lt;/div&gt; million for &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2022,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$46.4&lt;/div&gt; million for &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2023,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$34.3&lt;/div&gt; million for &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2024,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$31.5&lt;/div&gt; million for &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2025,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$27.2&lt;/div&gt; million for &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2026&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$46.7&lt;/div&gt; million thereafter. Expected future amortization expense is subject to fluctuations in foreign exchange rates and assumes &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;no&lt;/div&gt; future adjustments to acquired intangible assets.&lt;/div&gt;&lt;/div&gt;</us-gaap:IntangibleAssetsDisclosureTextBlock>
  <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="i_2021-01-31" decimals="-3" id="c71144879" unitRef="iso4217-usd">239992000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
  <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="i_2020-01-31" decimals="-3" id="c71144880" unitRef="iso4217-usd">256956000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
  <us-gaap:InterestExpense contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71144958" unitRef="iso4217-usd">1186000</us-gaap:InterestExpense>
  <us-gaap:InterestExpense contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71144959" unitRef="iso4217-usd">4416000</us-gaap:InterestExpense>
  <us-gaap:InterestExpense contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71144960" unitRef="iso4217-usd">2128000</us-gaap:InterestExpense>
  <us-gaap:InterestPaidNet contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145130" unitRef="iso4217-usd">89000</us-gaap:InterestPaidNet>
  <us-gaap:InterestPaidNet contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145131" unitRef="iso4217-usd">3516000</us-gaap:InterestPaidNet>
  <us-gaap:InterestPaidNet contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145132" unitRef="iso4217-usd">1712000</us-gaap:InterestPaidNet>
  <us-gaap:InventoryDisclosureTextBlock contextRef="d_2020-02-01_2021-01-31" id="s1792207">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Note &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;7&lt;/div&gt; &amp;#x2013; Inventory&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;At &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2020, &lt;/div&gt;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 years ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019,&lt;/div&gt; a provision for excess or obsolete inventories has been recorded in cost of revenues of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;nil,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;nil&lt;/div&gt; and nominal, respectively.&lt;/div&gt;&lt;/div&gt;</us-gaap:InventoryDisclosureTextBlock>
  <us-gaap:InventoryNet contextRef="i_2021-01-31" decimals="-3" id="c71144867" unitRef="iso4217-usd">429000</us-gaap:InventoryNet>
  <us-gaap:InventoryNet contextRef="i_2020-01-31" decimals="-3" id="c71144868" unitRef="iso4217-usd">411000</us-gaap:InventoryNet>
  <us-gaap:InventoryPolicyTextBlock contextRef="d_2020-02-01_2021-01-31" id="c71152865">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Inventory&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;no&lt;/div&gt; longer able to sell inventories above cost or at all, we write down inventory to market or excess inventory is written off.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:InventoryPolicyTextBlock>
  <us-gaap:InventoryValuationReserves contextRef="i_2021-01-31" decimals="-3" id="c71146424" unitRef="iso4217-usd">0</us-gaap:InventoryValuationReserves>
  <us-gaap:InventoryValuationReserves contextRef="i_2020-01-31" decimals="-3" id="c71146425" unitRef="iso4217-usd">0</us-gaap:InventoryValuationReserves>
  <us-gaap:InvestmentIncomeNet contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71144961" unitRef="iso4217-usd">159000</us-gaap:InvestmentIncomeNet>
  <us-gaap:InvestmentIncomeNet contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71144962" unitRef="iso4217-usd">193000</us-gaap:InvestmentIncomeNet>
  <us-gaap:InvestmentIncomeNet contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71144963" unitRef="iso4217-usd">195000</us-gaap:InvestmentIncomeNet>
  <us-gaap:LeaseCost contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145554" unitRef="iso4217-usd">5092000</us-gaap:LeaseCost>
  <us-gaap:LeaseCost contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145555" unitRef="iso4217-usd">5768000</us-gaap:LeaseCost>
  <us-gaap:LeaseCostTableTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-13">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 12pt 0pt 0"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 12pt 0pt 0"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Year Ended&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;January 31, 2021&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;January 31, 2020&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 70%; text-align: left"&gt;Operating lease cost&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4,590&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4,902&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Short-term lease cost&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;502&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;866&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Total operating lease cost&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5,092&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5,768&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-style: italic"&gt;Year Ended&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31, 2021&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;January 31, 2020&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 70%; text-align: left"&gt;Operating cash outflows from operating leases included in measurement of lease liabilities&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4,831&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4,150&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left"&gt;New ROU assets obtained in exchange for lease obligations&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,337&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6,439&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31, 2021&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;January 31, 2020&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 70%; text-align: left"&gt;Weighted average remaining lease term (years)&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3.8&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4.3&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td&gt;Weighted average discount rate (%)&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2.5&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2.8&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:LeaseCostTableTextBlock>
  <us-gaap:LesseeLeasesPolicyTextBlock contextRef="d_2020-02-01_2021-01-31" id="c71152869">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Leases&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;We recognize a right-of-use (&amp;#x201c;ROU&amp;#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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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's incremental borrowing rate. As most of our leases do &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; 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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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'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 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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;We have elected to apply the practical expedient &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; to recognize ROU assets and lease liabilities for short-term leases that have a lease term of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12&lt;/div&gt; months or less. The lease payments associated with these leases is recognized as an expense on a straight-line basis over the lease term.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:LesseeLeasesPolicyTextBlock>
  <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-14">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="text-align: left"&gt;Years Ended January 31,&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Operating Leases&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; width: 85%; text-align: left"&gt;2022&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4,544&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;2023&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,480&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;2024&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,689&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;2025&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,725&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;2026&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;954&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;2027 and thereafter&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;420&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left"&gt;&lt;div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Total lease payments&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;13,812&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Less: imputed interest&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(749&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left"&gt;&lt;div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Total lease obligations&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;13,063&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Current&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4,168&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Long-term&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8,895&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue contextRef="i_2021-01-31" decimals="-3" id="c71145570" unitRef="iso4217-usd">13812000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive contextRef="i_2021-01-31" decimals="-3" id="c71145569" unitRef="iso4217-usd">420000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive>
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths contextRef="i_2021-01-31" decimals="-3" id="c71145564" unitRef="iso4217-usd">4544000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive contextRef="i_2021-01-31" decimals="-3" id="c71145568" unitRef="iso4217-usd">954000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive>
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour contextRef="i_2021-01-31" decimals="-3" id="c71145567" unitRef="iso4217-usd">1725000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree contextRef="i_2021-01-31" decimals="-3" id="c71145566" unitRef="iso4217-usd">2689000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo contextRef="i_2021-01-31" decimals="-3" id="c71145565" unitRef="iso4217-usd">3480000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
  <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount contextRef="i_2021-01-31" decimals="-3" id="c71145571" unitRef="iso4217-usd">749000</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
  <us-gaap:LesseeOperatingLeaseRemainingLeaseTerm contextRef="i_2021-01-31_RangeAxis-MaximumMember" id="c71146461">P8Y</us-gaap:LesseeOperatingLeaseRemainingLeaseTerm>
  <us-gaap:LesseeOperatingLeaseRenewalTerm contextRef="i_2021-01-31_RangeAxis-MaximumMember" id="c71146462">P5Y</us-gaap:LesseeOperatingLeaseRenewalTerm>
  <us-gaap:LesseeOperatingLeasesTextBlock contextRef="d_2020-02-01_2021-01-31" id="s1792217">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Note &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;13&lt;/div&gt; &amp;#x2013; Leases&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;We have operating leases for buildings, vehicles and computer equipment. Our leases have remaining terms of up to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8&lt;/div&gt; years, some of which include options to extend the leases for up to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt; years.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;The components of operating lease expense were as follows:&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 12pt 0pt 0"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 12pt 0pt 0"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Year Ended&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;January 31, 2021&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;January 31, 2020&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="width: 70%; text-align: left"&gt;Operating lease cost&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 12%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4,590&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 12%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4,902&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Short-term lease cost&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;502&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;866&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Total operating lease cost&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5,092&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5,768&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Supplemental cash flow information related to operating leases was as follows:&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td style="font-style: italic"&gt;Year Ended&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31, 2021&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;January 31, 2020&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="width: 70%; text-align: left"&gt;Operating cash outflows from operating leases included in measurement of lease liabilities&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 12%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4,831&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 12%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4,150&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left"&gt;New ROU assets obtained in exchange for lease obligations&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,337&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6,439&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Supplemental information related to operating leases was as follows:&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31, 2021&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;January 31, 2020&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="width: 70%; text-align: left"&gt;Weighted average remaining lease term (years)&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 12%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3.8&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 12%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4.3&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td&gt;Weighted average discount rate (%)&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2.5&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2.8&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Maturities of operating lease liabilities were as follows as of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021:&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td style="text-align: left"&gt;Years Ended January 31,&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Operating Leases&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; width: 85%; text-align: left"&gt;2022&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 12%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4,544&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;2023&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,480&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;2024&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,689&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;2025&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,725&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;2026&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;954&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;2027 and thereafter&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;420&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left"&gt;&lt;div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Total lease payments&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;13,812&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Less: imputed interest&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(749&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left"&gt;&lt;div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Total lease obligations&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;13,063&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Current&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4,168&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;Long-term&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8,895&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt;&lt;/div&gt;</us-gaap:LesseeOperatingLeasesTextBlock>
  <us-gaap:LettersOfCreditOutstandingAmount contextRef="i_2021-01-31" decimals="-3" id="c71146457" unitRef="iso4217-usd">200000</us-gaap:LettersOfCreditOutstandingAmount>
  <us-gaap:LettersOfCreditOutstandingAmount contextRef="i_2020-01-31" decimals="-3" id="c71146458" unitRef="iso4217-usd">200000</us-gaap:LettersOfCreditOutstandingAmount>
  <us-gaap:Liabilities contextRef="i_2021-01-31" decimals="-3" id="c71144907" unitRef="iso4217-usd">152186000</us-gaap:Liabilities>
  <us-gaap:Liabilities contextRef="i_2020-01-31" decimals="-3" id="c71144908" unitRef="iso4217-usd">120877000</us-gaap:Liabilities>
  <us-gaap:LiabilitiesAndStockholdersEquity contextRef="i_2021-01-31" decimals="-3" id="c71144919" unitRef="iso4217-usd">1063254000</us-gaap:LiabilitiesAndStockholdersEquity>
  <us-gaap:LiabilitiesAndStockholdersEquity contextRef="i_2020-01-31" decimals="-3" id="c71144920" unitRef="iso4217-usd">942586000</us-gaap:LiabilitiesAndStockholdersEquity>
  <us-gaap:LiabilitiesCurrent contextRef="i_2021-01-31" decimals="-3" id="c71144895" unitRef="iso4217-usd">104263000</us-gaap:LiabilitiesCurrent>
  <us-gaap:LiabilitiesCurrent contextRef="i_2020-01-31" decimals="-3" id="c71144896" unitRef="iso4217-usd">88943000</us-gaap:LiabilitiesCurrent>
  <us-gaap:LiabilityForUncertainTaxPositionsNoncurrent contextRef="i_2021-01-31" decimals="-5" id="c71146617" unitRef="iso4217-usd">8400000</us-gaap:LiabilityForUncertainTaxPositionsNoncurrent>
  <us-gaap:LineOfCredit contextRef="i_2021-01-31_CreditFacilityAxis-RevolvingOperatingCreditFacilityMember_DebtInstrumentAxis-SeniorSecuredCreditFacilityMember" decimals="-3" id="c71146455" unitRef="iso4217-usd">0</us-gaap:LineOfCredit>
  <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity contextRef="i_2019-01-25_CreditFacilityAxis-RevolvingOperatingCreditFacilityMember_DebtInstrumentAxis-SeniorSecuredCreditFacilityMember" decimals="-3" id="c71146445" unitRef="iso4217-usd">350000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
  <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity contextRef="i_2019-01-25_CreditFacilityAxis-RevolvingOperatingCreditFacilityMember_DebtInstrumentAxis-SeniorSecuredCreditFacilityMember_RangeAxis-MaximumMember" decimals="-3" id="c71146446" unitRef="iso4217-usd">500000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
  <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity contextRef="i_2021-01-31_CreditFacilityAxis-RevolvingOperatingCreditFacilityMember_DebtInstrumentAxis-SeniorSecuredCreditFacilityMember" decimals="-3" id="c71146456" unitRef="iso4217-usd">350000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
  <us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage contextRef="d_2019-01-25_2019-01-25_CreditFacilityAxis-SeniorSecuredCreditFacilityMember_RangeAxis-MinimumMember" decimals="3" id="c71146453" unitRef="xbrli-pure">0.002</us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage>
  <us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage contextRef="d_2019-01-25_2019-01-25_CreditFacilityAxis-SeniorSecuredCreditFacilityMember_RangeAxis-MaximumMember" decimals="3" id="c71146454" unitRef="xbrli-pure">0.004</us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage>
  <us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock contextRef="d_2020-02-01_2021-01-31" id="s1792202">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Note &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt; &amp;#x2013; Trade Accounts Receivable&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="width: 74%; text-align: left"&gt;Trade accounts receivable&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;39,536&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;37,121&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Less: Provision for credit losses&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(2,330&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(2,003&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;37,206&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;35,118&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Included in accounts receivable are unbilled receivables in the amount of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.3&lt;/div&gt; million as at &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021 (&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$1.4&lt;/div&gt; million as at &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2020). &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;No&lt;/div&gt; single customer accounted for more than &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;10%&lt;/div&gt; of the accounts receivable balance as of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020.&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;The following table presents the changes in the provision for credit losses as follows:&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Provision for Credit Losses&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="width: 85%; text-indent: -0.5in; padding-left: 0.5in"&gt;Balance at January 31, 2020&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 12%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,003&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt"&gt;Current period provision for expected losses&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,681&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt"&gt;Write-offs charged against the provision&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,418&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt"&gt;Effect of movements in foreign exchange&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;64&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Balance at January 31, 2021&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,330&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt;&lt;/div&gt;</us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock>
  <us-gaap:LongTermDebtNoncurrent contextRef="i_2021-01-31" id="c71144897" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:LongTermDebtNoncurrent contextRef="i_2020-01-31" id="c71144898" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:NetCashProvidedByUsedInFinancingActivities contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145115" unitRef="iso4217-usd">5557000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
  <us-gaap:NetCashProvidedByUsedInFinancingActivities contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145116" unitRef="iso4217-usd">210169000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
  <us-gaap:NetCashProvidedByUsedInFinancingActivities contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145117" unitRef="iso4217-usd">-11377000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
  <us-gaap:NetCashProvidedByUsedInInvestingActivities contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145097" unitRef="iso4217-usd">-52162000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
  <us-gaap:NetCashProvidedByUsedInInvestingActivities contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145098" unitRef="iso4217-usd">-296953000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
  <us-gaap:NetCashProvidedByUsedInInvestingActivities contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145099" unitRef="iso4217-usd">-73176000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
  <us-gaap:NetCashProvidedByUsedInOperatingActivities contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145088" unitRef="iso4217-usd">131230000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
  <us-gaap:NetCashProvidedByUsedInOperatingActivities contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145089" unitRef="iso4217-usd">104252000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
  <us-gaap:NetCashProvidedByUsedInOperatingActivities contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145090" unitRef="iso4217-usd">78074000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
  <us-gaap:NetIncomeLoss contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145064" unitRef="iso4217-usd">52100000</us-gaap:NetIncomeLoss>
  <us-gaap:NetIncomeLoss contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145065" unitRef="iso4217-usd">36997000</us-gaap:NetIncomeLoss>
  <us-gaap:NetIncomeLoss contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145066" unitRef="iso4217-usd">31277000</us-gaap:NetIncomeLoss>
  <us-gaap:NetIncomeLoss contextRef="d_2020-02-01_2021-01-31_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c71152811" unitRef="iso4217-usd">52100000</us-gaap:NetIncomeLoss>
  <us-gaap:NetIncomeLoss contextRef="d_2019-02-01_2020-01-31_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c71152812" unitRef="iso4217-usd">36997000</us-gaap:NetIncomeLoss>
  <us-gaap:NetIncomeLoss contextRef="d_2018-02-01_2019-01-31_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c71152813" unitRef="iso4217-usd">31277000</us-gaap:NetIncomeLoss>
  <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock contextRef="d_2020-02-01_2021-01-31" id="c71152876">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;Recently adopted accounting pronouncements&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;In &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; May 2014, &lt;/div&gt;the FASB issued Accounting Standards Update &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2014&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;09,&lt;/div&gt; &amp;#x201c;Revenue from Contracts with Customers&amp;#x201d; (&amp;#x201c;ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;606&amp;#x201d;&lt;/div&gt;). ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;606&lt;/div&gt; supersedes the revenue recognition requirements in ASC Topic &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;605,&lt;/div&gt; &amp;#x201c;Revenue Recognition&amp;#x201d; ("ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;605"&lt;/div&gt;) and nearly all other existing revenue recognition guidance under US GAAP. The core principle of ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;606&lt;/div&gt; is to recognize revenues when promised goods or services are transferred to customers in an amount that reflects the consideration that is expected to be received for those goods or services. ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;606&lt;/div&gt; is effective for annual periods, and interim periods within those annual periods, beginning after &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; December 15, 2017, &lt;/div&gt;which is our fiscal year that began on &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 1, 2018 (&lt;/div&gt;fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt;). The Company has adopted ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;606&lt;/div&gt; in the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;first&lt;/div&gt; quarter of fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt; using the cumulative effect method and therefore the comparative information has &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; been restated and continues to be reported under ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;605.&lt;/div&gt; The details of the significant changes and quantitative impact of the changes are set out below.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify; text-indent: 0.5in"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Term-based licenses&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0 0pt 0.5in; text-align: justify"&gt;Under ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;605,&lt;/div&gt; revenue attributable to term-based arrangements was recognized ratably over the term of the arrangement because Vendor Specific Objective Evidence did &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; exist for the undelivered maintenance and support element of the arrangement. Under ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;606,&lt;/div&gt; the Company has deemed the licenses to be distinct from other performance obligations. Revenue allocated to the distinct license based on the SSP is recognized at the time that both the right-to-use the software has commenced for the term and the software has been made available to the customer.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify; text-indent: 0.5in"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Costs to obtain a contract&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0 0pt 0.5in; text-align: justify"&gt;Under the Company's previous accounting policies, the Company generally expensed commission costs paid to employees or &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;third&lt;/div&gt; parties to obtain customer contracts as incurred. Under ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;606,&lt;/div&gt; the Company allocates these incremental commission costs to the various performance obligations to which they relate using the relative selling price allocation for bundled commissions. For performance obligations &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; delivered upfront, the allocated commissions are deferred and amortized over the pattern of transfer of the related performance obligation. If the expected amortization period for all performance obligations in a contract with a customer is &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;one&lt;/div&gt; year or less, the commission fee is expensed when incurred. Capitalized costs to obtain a contract are included in other long-term assets on the consolidated balance sheet.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;The adoption of ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;606&lt;/div&gt; resulted in an increase to contract assets of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.5&lt;/div&gt; million, an increase to other long-term assets of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$4.2&lt;/div&gt; million, an increase to the liability for deferred income taxes of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$1.1&lt;/div&gt; million and a decrease to accumulated deficit of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$3.6&lt;/div&gt; million, as of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 1, 2018.&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;In &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; October 2016, &lt;/div&gt;the FASB issued Accounting Standards Update &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2016&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;16,&lt;/div&gt; &amp;#x201c;Income Taxes (Topic &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;740&lt;/div&gt;): Intra-Entity Transfers of Assets Other Than Inventory&amp;#x201d; (&amp;#x201c;ASU &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2016&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;16&amp;#x201d;&lt;/div&gt;). ASU &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2016&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;16&lt;/div&gt; requires the recognition of the income tax consequences of an intra-entity transfer of an asset other than inventory when the transfer occurs. ASU &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2016&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;16&lt;/div&gt; is effective for annual periods, and interim periods within those annual periods, beginning after &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; December 15, 2017, &lt;/div&gt;which is our fiscal year that began on &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 1, 2018 (&lt;/div&gt;fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt;). The Company adopted this guidance in the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;first&lt;/div&gt; quarter of fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019.&lt;/div&gt; As a result of adoption, the balance of unamortized deferred tax charges was written-off and previously unrecognized deferred income tax assets in certain jurisdictions were recognized. The change was applied on a modified retrospective basis, and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;no&lt;/div&gt; prior periods were restated. Accordingly, we recognized a decrease of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$4.0&lt;/div&gt; million in accumulated deficit as a result of the adoption of this change in accounting policy, as of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 1, 2018.&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;In &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 2016, &lt;/div&gt;the FASB issued Accounting Standards Update &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2016&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;02,&lt;/div&gt; &amp;#x201c;Leases (Topic &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;842&lt;/div&gt;)&amp;#x201d; (&amp;#x201c;ASU &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2016&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;02&amp;#x201d;&lt;/div&gt;) and issued subsequent amendments to the initial guidance during &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2018,&lt;/div&gt; collectively referred to as &amp;#x201c;ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;842&amp;#x201d;.&lt;/div&gt; These updates supersede the lease guidance in ASC Topic &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;840,&lt;/div&gt; &amp;#x201c;Leases&amp;#x201d; and require the recognition of lease assets and lease liabilities by lessees for most leases previously classified as operating leases under ASC Topic &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;840.&lt;/div&gt; Leases will continue to be classified as either operating or finance. ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;842&lt;/div&gt; is effective for annual periods, and interim periods within those annual periods, beginning after &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; December 15, 2018, &lt;/div&gt;which is our fiscal year that began on &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 1, 2019 (&lt;/div&gt;fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&lt;/div&gt;). The Company adopted ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;842&lt;/div&gt; in the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;first&lt;/div&gt; quarter of fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&lt;/div&gt; using the cumulative effect method and therefore the comparative information has &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; been restated and continues to be reported under ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;840.&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 15 --&gt; &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;As permitted under ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;842,&lt;/div&gt; 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; to recognize right-of-use (ROU) assets and lease liabilities for short-term leases that have a lease term of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12&lt;/div&gt; months or less. The adoption of ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;842&lt;/div&gt; resulted in an increase to ROU assets and lease liabilities of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$10.4&lt;/div&gt;&lt;/div&gt; million as of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 1, 2019. &lt;/div&gt;The adoption of ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;842&lt;/div&gt; did &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; have a material impact on either our consolidated statement of operations or our consolidated statement of cash flows.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;In &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; June 2016, &lt;/div&gt;the FASB issued Accounting Standards Update &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2016&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;13,&lt;/div&gt; &amp;#x201c;Financial Instruments &amp;#x2013; Credit Losses (Topic &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;326&lt;/div&gt;): Measurement of Credit Losses on Financial Instruments&amp;#x201d; (&amp;#x201c;ASU &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2016&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;13&amp;#x201d;&lt;/div&gt;) and issued subsequent amendments to the initial guidance during the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt; calendar year, collectively referred to as &amp;#x201c;ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;326&amp;#x201d;.&lt;/div&gt; ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;326&lt;/div&gt; requires the measurement and recognition of expected credit losses for financial assets held at amortized cost. ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;326&lt;/div&gt; 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;326&lt;/div&gt; is effective for annual periods, and interim periods within those annual periods, beginning after &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; December 15, 2019, &lt;/div&gt;which is our fiscal year that began on &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 1, 2020 (&lt;/div&gt;fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2021&lt;/div&gt;).&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;326&lt;/div&gt; as of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 1, 2020 &lt;/div&gt;using the cumulative effect method and therefore the comparative information has &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; been restated. The adoption of ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;326&lt;/div&gt; did &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; have a material impact on our results of operations or disclosures.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;In &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 2017, &lt;/div&gt;the FASB issued Accounting Standards Update &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2017&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;04,&lt;/div&gt; &amp;#x201c;Intangibles &amp;#x2013; Goodwill and Other (Topic &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;350&lt;/div&gt;): Simplifying the Test for Goodwill Impairment&amp;#x201d; (&amp;#x201c;ASU &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2017&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;04&amp;#x201d;&lt;/div&gt;). ASU &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2017&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;04&lt;/div&gt; simplifies how an entity is required to test goodwill for impairment. ASU &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2017&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;04&lt;/div&gt; is effective for annual periods, and interim periods within those annual periods, beginning after &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; December 15, 2019, &lt;/div&gt;which is our fiscal year that began on &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 1, 2020 (&lt;/div&gt;fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2021&lt;/div&gt;). The Company adopted this guidance in the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;first&lt;/div&gt; quarter of fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2021.&lt;/div&gt; The adoption of this guidance did &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; have a material impact on our results of operations or disclosures.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;In &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; August 2018, &lt;/div&gt;the FASB issued Accounting Standards Update &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2018&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;15,&lt;/div&gt; &amp;#x201c;Intangibles &amp;#x2013; Goodwill and Other &amp;#x2013; Internal-Use Software (Subtopic &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;350&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;40&lt;/div&gt;): Customer's Accounting for Implementation Costs Incurred in a Cloud Computing Arrangement That Is a Service Contract&amp;#x201d; (&amp;#x201c;ASU &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2018&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;15&amp;#x201d;&lt;/div&gt;). ASU &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2018&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;15&lt;/div&gt; 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2018&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;15&lt;/div&gt; is effective for annual periods, and interim periods within those annual periods, beginning after &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; December 15, 2019, &lt;/div&gt;which is our fiscal year that began on &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 1, 2020 (&lt;/div&gt;fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2021&lt;/div&gt;). The Company adopted this guidance in the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;first&lt;/div&gt; quarter of fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2021.&lt;/div&gt; The adoption of this guidance did &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; have a material impact on our results of operations or disclosures.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;Recently issued accounting pronouncements&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;In &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; December 2019, &lt;/div&gt;the FASB issued Accounting Standards Update &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12,&lt;/div&gt; &amp;#x201c;Income Taxes (Topic &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;740&lt;/div&gt;): Simplifying the Accounting for Income Taxes&amp;#x201d; (&amp;#x201c;ASU &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12&amp;#x201d;&lt;/div&gt;). ASU &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12&lt;/div&gt; simplifies how an entity accounts for income taxes. ASU &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12&lt;/div&gt; is effective for annual periods, and interim periods within those annual periods, beginning after &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; December 15, 2020, &lt;/div&gt;which will be our fiscal year beginning &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 1, 2021 (&lt;/div&gt;fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2022&lt;/div&gt;). Early adoption is permitted. The Company will adopt this guidance in the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;first&lt;/div&gt; quarter of fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2022.&lt;/div&gt; The adoption of this guidance is &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; expected to have a material impact on our results of operations or disclosures.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
  <us-gaap:NoncurrentAssets contextRef="i_2021-01-31_StatementGeographicalAxis-US" decimals="-3" id="c71146079" unitRef="iso4217-usd">92442000</us-gaap:NoncurrentAssets>
  <us-gaap:NoncurrentAssets contextRef="i_2020-01-31_StatementGeographicalAxis-US" decimals="-3" id="c71146080" unitRef="iso4217-usd">114980000</us-gaap:NoncurrentAssets>
  <us-gaap:NoncurrentAssets contextRef="i_2021-01-31_StatementGeographicalAxis-EMEAMember" decimals="-3" id="c71146081" unitRef="iso4217-usd">39769000</us-gaap:NoncurrentAssets>
  <us-gaap:NoncurrentAssets contextRef="i_2020-01-31_StatementGeographicalAxis-EMEAMember" decimals="-3" id="c71146082" unitRef="iso4217-usd">31299000</us-gaap:NoncurrentAssets>
  <us-gaap:NoncurrentAssets contextRef="i_2021-01-31_StatementGeographicalAxis-CA" decimals="-3" id="c71146083" unitRef="iso4217-usd">107472000</us-gaap:NoncurrentAssets>
  <us-gaap:NoncurrentAssets contextRef="i_2020-01-31_StatementGeographicalAxis-CA" decimals="-3" id="c71146084" unitRef="iso4217-usd">111264000</us-gaap:NoncurrentAssets>
  <us-gaap:NoncurrentAssets contextRef="i_2021-01-31_StatementGeographicalAxis-AsiaPacificMember" decimals="-3" id="c71146085" unitRef="iso4217-usd">12398000</us-gaap:NoncurrentAssets>
  <us-gaap:NoncurrentAssets contextRef="i_2020-01-31_StatementGeographicalAxis-AsiaPacificMember" decimals="-3" id="c71146086" unitRef="iso4217-usd">13144000</us-gaap:NoncurrentAssets>
  <us-gaap:NoncurrentAssets contextRef="i_2021-01-31" decimals="-3" id="c71146087" unitRef="iso4217-usd">252081000</us-gaap:NoncurrentAssets>
  <us-gaap:NoncurrentAssets contextRef="i_2020-01-31" decimals="-3" id="c71146088" unitRef="iso4217-usd">270687000</us-gaap:NoncurrentAssets>
  <us-gaap:NumberOfReportableSegments contextRef="d_2020-02-01_2021-01-31" decimals="INF" id="c71146645" unitRef="xbrli-pure">1</us-gaap:NumberOfReportableSegments>
  <us-gaap:OperatingExpenses contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71144952" unitRef="iso4217-usd">187358000</us-gaap:OperatingExpenses>
  <us-gaap:OperatingExpenses contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71144953" unitRef="iso4217-usd">187812000</us-gaap:OperatingExpenses>
  <us-gaap:OperatingExpenses contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71144954" unitRef="iso4217-usd">158734000</us-gaap:OperatingExpenses>
  <us-gaap:OperatingIncomeLoss contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71144955" unitRef="iso4217-usd">71396000</us-gaap:OperatingIncomeLoss>
  <us-gaap:OperatingIncomeLoss contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71144956" unitRef="iso4217-usd">52258000</us-gaap:OperatingIncomeLoss>
  <us-gaap:OperatingIncomeLoss contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71144957" unitRef="iso4217-usd">41443000</us-gaap:OperatingIncomeLoss>
  <us-gaap:OperatingLeaseCost contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145550" unitRef="iso4217-usd">4590000</us-gaap:OperatingLeaseCost>
  <us-gaap:OperatingLeaseCost contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145551" unitRef="iso4217-usd">4902000</us-gaap:OperatingLeaseCost>
  <us-gaap:OperatingLeaseLiability contextRef="i_2019-02-01_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201602Member" decimals="-3" id="c71146244" unitRef="iso4217-usd">10400000</us-gaap:OperatingLeaseLiability>
  <us-gaap:OperatingLeaseLiability contextRef="i_2021-01-31" decimals="-3" id="c71145572" unitRef="iso4217-usd">13063000</us-gaap:OperatingLeaseLiability>
  <us-gaap:OperatingLeaseLiabilityCurrent contextRef="i_2021-01-31" decimals="-3" id="c71145573" unitRef="iso4217-usd">4168000</us-gaap:OperatingLeaseLiabilityCurrent>
  <us-gaap:OperatingLeaseLiabilityCurrent contextRef="i_2020-01-31" decimals="-3" id="c71144890" unitRef="iso4217-usd">3928000</us-gaap:OperatingLeaseLiabilityCurrent>
  <us-gaap:OperatingLeaseLiabilityNoncurrent contextRef="i_2021-01-31" decimals="-3" id="c71145574" unitRef="iso4217-usd">8895000</us-gaap:OperatingLeaseLiabilityNoncurrent>
  <us-gaap:OperatingLeaseLiabilityNoncurrent contextRef="i_2020-01-31" decimals="-3" id="c71144900" unitRef="iso4217-usd">9477000</us-gaap:OperatingLeaseLiabilityNoncurrent>
  <us-gaap:OperatingLeasePayments contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145556" unitRef="iso4217-usd">4831000</us-gaap:OperatingLeasePayments>
  <us-gaap:OperatingLeasePayments contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145557" unitRef="iso4217-usd">4150000</us-gaap:OperatingLeasePayments>
  <us-gaap:OperatingLeaseRightOfUseAsset contextRef="i_2019-02-01_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201602Member" decimals="-3" id="c71146657" unitRef="iso4217-usd">10400000</us-gaap:OperatingLeaseRightOfUseAsset>
  <us-gaap:OperatingLeaseRightOfUseAsset contextRef="i_2021-01-31" decimals="-3" id="c71144875" unitRef="iso4217-usd">12165000</us-gaap:OperatingLeaseRightOfUseAsset>
  <us-gaap:OperatingLeaseRightOfUseAsset contextRef="i_2020-01-31" decimals="-3" id="c71144876" unitRef="iso4217-usd">12877000</us-gaap:OperatingLeaseRightOfUseAsset>
  <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent contextRef="i_2021-01-31" decimals="3" id="c71145562" unitRef="xbrli-pure">0.025</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
  <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent contextRef="i_2020-01-31" decimals="3" id="c71145563" unitRef="xbrli-pure">0.028</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
  <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1 contextRef="i_2021-01-31" id="c71145560">P3Y292D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
  <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1 contextRef="i_2020-01-31" id="c71145561">P4Y109D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-CanadaRevenueAgencyMember_TaxPeriodAxis-TaxYear2022Member" id="c71145920" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_IncomeTaxAuthorityAxis-DomesticCountryMember_IncomeTaxAuthorityNameAxis-InternalRevenueServiceIRSMember_TaxPeriodAxis-TaxYear2022Member" id="c71145921" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-EmeaIncomeTaxAuthorityMember_TaxPeriodAxis-TaxYear2022Member" id="c71145922" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-AsiaPacificIncomeTaxAuthorityMember_TaxPeriodAxis-TaxYear2022Member" decimals="-3" id="c71145923" unitRef="iso4217-usd">285000</us-gaap:OperatingLossCarryforwards>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_TaxPeriodAxis-TaxYear2022Member" decimals="-3" id="c71145924" unitRef="iso4217-usd">285000</us-gaap:OperatingLossCarryforwards>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-CanadaRevenueAgencyMember_TaxPeriodAxis-TaxYear2023Member" id="c71145925" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_IncomeTaxAuthorityAxis-DomesticCountryMember_IncomeTaxAuthorityNameAxis-InternalRevenueServiceIRSMember_TaxPeriodAxis-TaxYear2023Member" decimals="-3" id="c71145926" unitRef="iso4217-usd">3000</us-gaap:OperatingLossCarryforwards>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-EmeaIncomeTaxAuthorityMember_TaxPeriodAxis-TaxYear2023Member" decimals="-3" id="c71145927" unitRef="iso4217-usd">341000</us-gaap:OperatingLossCarryforwards>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-AsiaPacificIncomeTaxAuthorityMember_TaxPeriodAxis-TaxYear2023Member" decimals="-3" id="c71145928" unitRef="iso4217-usd">50000</us-gaap:OperatingLossCarryforwards>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_TaxPeriodAxis-TaxYear2023Member" decimals="-3" id="c71145929" unitRef="iso4217-usd">394000</us-gaap:OperatingLossCarryforwards>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-CanadaRevenueAgencyMember_TaxPeriodAxis-TaxYear2024Member" id="c71145930" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_IncomeTaxAuthorityAxis-DomesticCountryMember_IncomeTaxAuthorityNameAxis-InternalRevenueServiceIRSMember_TaxPeriodAxis-TaxYear2024Member" decimals="-3" id="c71145931" unitRef="iso4217-usd">16000</us-gaap:OperatingLossCarryforwards>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-EmeaIncomeTaxAuthorityMember_TaxPeriodAxis-TaxYear2024Member" decimals="-3" id="c71145932" unitRef="iso4217-usd">138000</us-gaap:OperatingLossCarryforwards>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-AsiaPacificIncomeTaxAuthorityMember_TaxPeriodAxis-TaxYear2024Member" decimals="-3" id="c71145933" unitRef="iso4217-usd">67000</us-gaap:OperatingLossCarryforwards>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_TaxPeriodAxis-TaxYear2024Member" decimals="-3" id="c71145934" unitRef="iso4217-usd">221000</us-gaap:OperatingLossCarryforwards>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-CanadaRevenueAgencyMember_TaxPeriodAxis-TaxYear2025Member" id="c71145935" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_IncomeTaxAuthorityAxis-DomesticCountryMember_IncomeTaxAuthorityNameAxis-InternalRevenueServiceIRSMember_TaxPeriodAxis-TaxYear2025Member" decimals="-3" id="c71145936" unitRef="iso4217-usd">51000</us-gaap:OperatingLossCarryforwards>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-EmeaIncomeTaxAuthorityMember_TaxPeriodAxis-TaxYear2025Member" id="c71145937" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-AsiaPacificIncomeTaxAuthorityMember_TaxPeriodAxis-TaxYear2025Member" id="c71145938" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_TaxPeriodAxis-TaxYear2025Member" decimals="-3" id="c71145939" unitRef="iso4217-usd">51000</us-gaap:OperatingLossCarryforwards>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-CanadaRevenueAgencyMember_TaxPeriodAxis-TaxYear2026Member" id="c71145940" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_IncomeTaxAuthorityAxis-DomesticCountryMember_TaxPeriodAxis-TaxYear2026Member" id="c71145941" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-EmeaIncomeTaxAuthorityMember_TaxPeriodAxis-TaxYear2026Member" id="c71145942" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-AsiaPacificIncomeTaxAuthorityMember_TaxPeriodAxis-TaxYear2026Member" id="c71145943" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_TaxPeriodAxis-TaxYear2026Member" id="c71145944" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-CanadaRevenueAgencyMember_TaxPeriodAxis-AfterTaxYear2026Member" decimals="-3" id="c71145945" unitRef="iso4217-usd">6969000</us-gaap:OperatingLossCarryforwards>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_IncomeTaxAuthorityAxis-DomesticCountryMember_IncomeTaxAuthorityNameAxis-InternalRevenueServiceIRSMember_TaxPeriodAxis-AfterTaxYear2026Member" decimals="-3" id="c71145946" unitRef="iso4217-usd">2807000</us-gaap:OperatingLossCarryforwards>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-EmeaIncomeTaxAuthorityMember_TaxPeriodAxis-AfterTaxYear2026Member" decimals="-3" id="c71145947" unitRef="iso4217-usd">47832000</us-gaap:OperatingLossCarryforwards>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-AsiaPacificIncomeTaxAuthorityMember_TaxPeriodAxis-AfterTaxYear2026Member" decimals="-3" id="c71145948" unitRef="iso4217-usd">2434000</us-gaap:OperatingLossCarryforwards>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_TaxPeriodAxis-AfterTaxYear2026Member" decimals="-3" id="c71145949" unitRef="iso4217-usd">60042000</us-gaap:OperatingLossCarryforwards>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-CanadaRevenueAgencyMember" decimals="-3" id="c71145950" unitRef="iso4217-usd">6969000</us-gaap:OperatingLossCarryforwards>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_IncomeTaxAuthorityAxis-DomesticCountryMember" decimals="-3" id="c71145951" unitRef="iso4217-usd">2877000</us-gaap:OperatingLossCarryforwards>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-EmeaIncomeTaxAuthorityMember" decimals="-3" id="c71145952" unitRef="iso4217-usd">48311000</us-gaap:OperatingLossCarryforwards>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-AsiaPacificIncomeTaxAuthorityMember" decimals="-3" id="c71145953" unitRef="iso4217-usd">2836000</us-gaap:OperatingLossCarryforwards>
  <us-gaap:OperatingLossCarryforwards contextRef="i_2021-01-31" decimals="-3" id="c71145954" unitRef="iso4217-usd">60993000</us-gaap:OperatingLossCarryforwards>
  <us-gaap:OtherAccruedLiabilitiesCurrent contextRef="i_2021-01-31" decimals="-3" id="c71145546" unitRef="iso4217-usd">13048000</us-gaap:OtherAccruedLiabilitiesCurrent>
  <us-gaap:OtherAccruedLiabilitiesCurrent contextRef="i_2020-01-31" decimals="-3" id="c71145547" unitRef="iso4217-usd">13253000</us-gaap:OtherAccruedLiabilitiesCurrent>
  <us-gaap:OtherAssetsCurrent contextRef="i_2021-01-31" decimals="-3" id="c71145468" unitRef="iso4217-usd">14593000</us-gaap:OtherAssetsCurrent>
  <us-gaap:OtherAssetsCurrent contextRef="i_2020-01-31" decimals="-3" id="c71145469" unitRef="iso4217-usd">7294000</us-gaap:OtherAssetsCurrent>
  <us-gaap:OtherAssetsNoncurrent contextRef="i_2018-02-01_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201409Member" decimals="-3" id="c71146207" unitRef="iso4217-usd">4200000</us-gaap:OtherAssetsNoncurrent>
  <us-gaap:OtherAssetsNoncurrent contextRef="i_2021-01-31" decimals="-3" id="c71144871" unitRef="iso4217-usd">15550000</us-gaap:OtherAssetsNoncurrent>
  <us-gaap:OtherAssetsNoncurrent contextRef="i_2020-01-31" decimals="-3" id="c71144872" unitRef="iso4217-usd">13520000</us-gaap:OtherAssetsNoncurrent>
  <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71144998" unitRef="iso4217-usd">24755000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
  <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71144999" unitRef="iso4217-usd">-743000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
  <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145000" unitRef="iso4217-usd">-9949000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
  <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71146653" unitRef="iso4217-usd">290000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax>
  <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71146654" unitRef="iso4217-usd">-132000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax>
  <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71146655" unitRef="iso4217-usd">-44000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax>
  <us-gaap:OtherComprehensiveIncomeLossNetOfTax contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145001" unitRef="iso4217-usd">24755000</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
  <us-gaap:OtherComprehensiveIncomeLossNetOfTax contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145002" unitRef="iso4217-usd">-743000</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
  <us-gaap:OtherComprehensiveIncomeLossNetOfTax contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145003" unitRef="iso4217-usd">-9949000</us-gaap:OtherComprehensiveIncomeLossNetOfTax>
  <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent contextRef="d_2020-02-01_2021-01-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember" decimals="-3" id="c71152802" unitRef="iso4217-usd">24755000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
  <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent contextRef="d_2019-02-01_2020-01-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember" decimals="-3" id="c71152803" unitRef="iso4217-usd">-743000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
  <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent contextRef="d_2018-02-01_2019-01-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember" decimals="-3" id="c71152804" unitRef="iso4217-usd">-9949000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
  <us-gaap:OtherIncomeAndOtherExpenseDisclosureTextBlock contextRef="d_2020-02-01_2021-01-31" id="s1792247">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Note &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;20&lt;/div&gt; - Other Charges&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Other charges are comprised of acquisition-related costs, contingent consideration adjustments and restructuring initiatives which have been undertaken from time to time under various restructuring plans. Acquisition-related costs primarily include advisory services, administrative costs and retention bonuses to employees joining by way of an acquisition, and collectively relate to completed and prospective acquisitions.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;The following tables shows the components of other charges as follows:&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td style="font-style: italic"&gt;Year Ended&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2019&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="width: 61%; text-align: left"&gt;Acquisition-related costs&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,981&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,457&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,187&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left"&gt;Contingent consideration adjustments&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,946&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;340&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;591&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Restructuring plans&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,300&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;20&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,335&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,797&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,798&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2021&lt;/div&gt; Restructuring Plan&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;In the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;second&lt;/div&gt; quarter of fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2021,&lt;/div&gt; management approved and began to implement a restructuring plan (the &amp;#x201c;Fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2021&lt;/div&gt; Restructuring Plan&amp;#x201d;) to reduce operating expenses. To date, &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$2.3&lt;/div&gt; 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 expected remaining workforce reduction and office closure costs of approximately &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.1&lt;/div&gt; million.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;The following table shows the changes in the restructuring provision for the Fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2021&lt;/div&gt; Restructuring Plan:&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right; text-indent: 1.5pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right; text-indent: 1.5pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Workforce&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right; text-indent: 1.5pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Reduction&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right; text-indent: 1.5pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Office Closures&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Total&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td&gt;Balance at January 31, 2020&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="width: 61%; text-align: left; padding-left: 10pt"&gt;Accruals and adjustments&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,717&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;583&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,300&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left; padding-left: 10pt"&gt;Cash draw downs&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,657&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(583&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(2,240&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left; padding-bottom: 1pt; padding-left: 10pt"&gt;Foreign exchange&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;10&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;10&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-bottom: 1pt"&gt;Balance at January 31, 2021&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;70&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;70&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt;&lt;/div&gt;</us-gaap:OtherIncomeAndOtherExpenseDisclosureTextBlock>
  <us-gaap:OtherNoncashIncomeExpense contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145076" unitRef="iso4217-usd">-207000</us-gaap:OtherNoncashIncomeExpense>
  <us-gaap:OtherNoncashIncomeExpense contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145077" unitRef="iso4217-usd">-337000</us-gaap:OtherNoncashIncomeExpense>
  <us-gaap:OtherNoncashIncomeExpense contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145078" unitRef="iso4217-usd">-71000</us-gaap:OtherNoncashIncomeExpense>
  <us-gaap:OtherNonoperatingExpense contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71146002" unitRef="iso4217-usd">2335000</us-gaap:OtherNonoperatingExpense>
  <us-gaap:OtherNonoperatingExpense contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71146003" unitRef="iso4217-usd">3797000</us-gaap:OtherNonoperatingExpense>
  <us-gaap:OtherNonoperatingExpense contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71146004" unitRef="iso4217-usd">3798000</us-gaap:OtherNonoperatingExpense>
  <us-gaap:OtherReceivablesNetCurrent contextRef="i_2021-01-31" decimals="-3" id="c71145470" unitRef="iso4217-usd">14830000</us-gaap:OtherReceivablesNetCurrent>
  <us-gaap:OtherReceivablesNetCurrent contextRef="i_2020-01-31" decimals="-3" id="c71145471" unitRef="iso4217-usd">7294000</us-gaap:OtherReceivablesNetCurrent>
  <us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities contextRef="d_2020-02-01_2021-01-31" id="c71145112" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145113" unitRef="iso4217-usd">785000</us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities>
  <us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145114" unitRef="iso4217-usd">1531000</us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities>
  <us-gaap:PaymentsForRestructuring contextRef="d_2020-02-01_2021-01-31_RestructuringCostAndReserveAxis-EmployeeSeveranceMember" decimals="-3" id="c71146011" unitRef="iso4217-usd">1657000</us-gaap:PaymentsForRestructuring>
  <us-gaap:PaymentsForRestructuring contextRef="d_2020-02-01_2021-01-31_RestructuringCostAndReserveAxis-FacilityClosingMember" decimals="-3" id="c71146012" unitRef="iso4217-usd">583000</us-gaap:PaymentsForRestructuring>
  <us-gaap:PaymentsForRestructuring contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71146013" unitRef="iso4217-usd">2240000</us-gaap:PaymentsForRestructuring>
  <us-gaap:PaymentsOfDebtIssuanceCosts contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145106" unitRef="iso4217-usd">40000</us-gaap:PaymentsOfDebtIssuanceCosts>
  <us-gaap:PaymentsOfDebtIssuanceCosts contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145107" unitRef="iso4217-usd">1400000</us-gaap:PaymentsOfDebtIssuanceCosts>
  <us-gaap:PaymentsOfDebtIssuanceCosts contextRef="d_2018-02-01_2019-01-31" id="c71145108" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="d_2020-02-21_2020-02-21_BusinessAcquisitionAxis-PeoplevoxMember" decimals="-5" id="c71146304" unitRef="iso4217-usd">24100000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
  <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="d_2020-06-10_2020-06-10_BusinessAcquisitionAxis-KontainersMember" decimals="-5" id="c71146310" unitRef="iso4217-usd">5200000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
  <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="d_2020-11-06_2020-11-06_BusinessAcquisitionAxis-ShipTrackMember" decimals="-5" id="c71146317" unitRef="iso4217-usd">19000000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
  <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="d_2019-02-12_2019-02-12_BusinessAcquisitionAxis-VisualComplianceMember" decimals="-5" id="c71146332" unitRef="iso4217-usd">248900000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
  <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="d_2019-05-10_2019-05-10_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember" decimals="-5" id="c71146340" unitRef="iso4217-usd">21800000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
  <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="d_2019-06-27_2019-06-27_BusinessAcquisitionAxis-StepcomMember" decimals="-5" id="c71146349" unitRef="iso4217-usd">18600000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
  <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="d_2019-08-20_2019-08-20_BusinessAcquisitionAxis-BesttransportMember" decimals="-5" id="c71146356" unitRef="iso4217-usd">11700000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
  <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="d_2018-02-02_2018-02-02_BusinessAcquisitionAxis-AljexSoftwareIncMember" decimals="-5" id="c71146365" unitRef="iso4217-usd">32400000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
  <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="d_2018-06-22_2018-06-22_BusinessAcquisitionAxis-VelocityMailMember" decimals="-5" id="c71146371" unitRef="iso4217-usd">26100000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
  <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="d_2021-02-26_2021-02-26_BusinessAcquisitionAxis-VitaDexSolutionsLLCMember_SubsequentEventTypeAxis-SubsequentEventMember" decimals="-6" id="c71146647" unitRef="iso4217-usd">36000000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
  <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145094" unitRef="iso4217-usd">48403000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
  <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145095" unitRef="iso4217-usd">292053000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
  <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145096" unitRef="iso4217-usd">67932000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
  <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-PeoplevoxMember" decimals="-3" id="c71145141" unitRef="iso4217-usd">24137000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
  <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-KontainersMember" decimals="-3" id="c71145142" unitRef="iso4217-usd">5237000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
  <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember" decimals="-3" id="c71145143" unitRef="iso4217-usd">19029000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
  <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-The2021AcquisitionsMember" decimals="-3" id="c71145144" unitRef="iso4217-usd">48403000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
  <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember" decimals="-3" id="c71152948" unitRef="iso4217-usd">239863000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
  <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember" decimals="-3" id="c71152949" unitRef="iso4217-usd">21833000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
  <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-StepcomMember" decimals="-3" id="c71152950" unitRef="iso4217-usd">18639000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
  <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-BesttransportMember" decimals="-3" id="c71152951" unitRef="iso4217-usd">11718000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
  <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-The2020AcquisitionsMember" decimals="-3" id="c71152952" unitRef="iso4217-usd">292053000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
  <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-AljexSoftwareIncMember" decimals="-3" id="c71153143" unitRef="iso4217-usd">32382000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
  <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-VelocityMailMember" decimals="-3" id="c71153144" unitRef="iso4217-usd">26107000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
  <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-PinPointMember" decimals="-3" id="c71153145" unitRef="iso4217-usd">9443000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
  <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-The2019AcquisitionsMember" decimals="-3" id="c71153146" unitRef="iso4217-usd">67932000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
  <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145091" unitRef="iso4217-usd">3759000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
  <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145092" unitRef="iso4217-usd">4900000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
  <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145093" unitRef="iso4217-usd">5244000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
  <us-gaap:PrepaidExpenseAndOtherAssetsCurrent contextRef="i_2021-01-31" decimals="-3" id="c71144865" unitRef="iso4217-usd">16939000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
  <us-gaap:PrepaidExpenseAndOtherAssetsCurrent contextRef="i_2020-01-31" decimals="-3" id="c71144866" unitRef="iso4217-usd">12984000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
  <us-gaap:ProceedsFromIssuanceOfCommonStock contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145109" unitRef="iso4217-usd">6194000</us-gaap:ProceedsFromIssuanceOfCommonStock>
  <us-gaap:ProceedsFromIssuanceOfCommonStock contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145110" unitRef="iso4217-usd">237973000</us-gaap:ProceedsFromIssuanceOfCommonStock>
  <us-gaap:ProceedsFromIssuanceOfCommonStock contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145111" unitRef="iso4217-usd">345000</us-gaap:ProceedsFromIssuanceOfCommonStock>
  <us-gaap:ProceedsFromLinesOfCredit contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145100" unitRef="iso4217-usd">10196000</us-gaap:ProceedsFromLinesOfCredit>
  <us-gaap:ProceedsFromLinesOfCredit contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145101" unitRef="iso4217-usd">297015000</us-gaap:ProceedsFromLinesOfCredit>
  <us-gaap:ProceedsFromLinesOfCredit contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145102" unitRef="iso4217-usd">68468000</us-gaap:ProceedsFromLinesOfCredit>
  <us-gaap:ProceedsFromStockOptionsExercised contextRef="d_2020-02-01_2021-01-31" decimals="-5" id="c71146513" unitRef="iso4217-usd">6200000</us-gaap:ProceedsFromStockOptionsExercised>
  <us-gaap:ProceedsFromStockOptionsExercised contextRef="d_2019-02-01_2020-01-31" decimals="-5" id="c71146514" unitRef="iso4217-usd">1500000</us-gaap:ProceedsFromStockOptionsExercised>
  <us-gaap:ProceedsFromStockOptionsExercised contextRef="d_2018-02-01_2019-01-31" decimals="-5" id="c71146515" unitRef="iso4217-usd">500000</us-gaap:ProceedsFromStockOptionsExercised>
  <us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock contextRef="d_2020-02-01_2021-01-31" id="s1792208">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Note &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8&lt;/div&gt; &amp;#x2013; Property and Equipment&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td&gt;Cost&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; width: 74%"&gt;Computer equipment and software&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;37,469&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;34,442&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt"&gt;Furniture and fixtures&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,494&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,432&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt"&gt;Leasehold improvements&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;807&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;778&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt"&gt;Equipment installed with customers&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,654&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,289&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt"&gt;Assets under construction&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;998&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;829&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;42,422&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;38,770&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left"&gt;Accumulated depreciation&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt"&gt;Computer equipment and software&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;28,123&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;23,730&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt"&gt;Furniture and fixtures&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,081&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;816&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt"&gt;Leasehold improvements&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;401&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;290&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt"&gt;Equipment installed with customers&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;728&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;203&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;30,333&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;25,039&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-bottom: 1pt"&gt;Net&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12,089&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;13,731&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt;&lt;/div&gt;</us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock>
  <us-gaap:PropertyPlantAndEquipmentGross contextRef="i_2021-01-31_PropertyPlantAndEquipmentByTypeAxis-ComputerEquipmentMember" decimals="-3" id="c71145472" unitRef="iso4217-usd">37469000</us-gaap:PropertyPlantAndEquipmentGross>
  <us-gaap:PropertyPlantAndEquipmentGross contextRef="i_2020-01-31_PropertyPlantAndEquipmentByTypeAxis-ComputerEquipmentMember" decimals="-3" id="c71145473" unitRef="iso4217-usd">34442000</us-gaap:PropertyPlantAndEquipmentGross>
  <us-gaap:PropertyPlantAndEquipmentGross contextRef="i_2021-01-31_PropertyPlantAndEquipmentByTypeAxis-FurnitureAndFixturesMember" decimals="-3" id="c71145474" unitRef="iso4217-usd">1494000</us-gaap:PropertyPlantAndEquipmentGross>
  <us-gaap:PropertyPlantAndEquipmentGross contextRef="i_2020-01-31_PropertyPlantAndEquipmentByTypeAxis-FurnitureAndFixturesMember" decimals="-3" id="c71145475" unitRef="iso4217-usd">1432000</us-gaap:PropertyPlantAndEquipmentGross>
  <us-gaap:PropertyPlantAndEquipmentGross contextRef="i_2021-01-31_PropertyPlantAndEquipmentByTypeAxis-LeaseholdImprovementsMember" decimals="-3" id="c71145476" unitRef="iso4217-usd">807000</us-gaap:PropertyPlantAndEquipmentGross>
  <us-gaap:PropertyPlantAndEquipmentGross contextRef="i_2020-01-31_PropertyPlantAndEquipmentByTypeAxis-LeaseholdImprovementsMember" decimals="-3" id="c71145477" unitRef="iso4217-usd">778000</us-gaap:PropertyPlantAndEquipmentGross>
  <us-gaap:PropertyPlantAndEquipmentGross contextRef="i_2021-01-31_PropertyPlantAndEquipmentByTypeAxis-EquipmentInstalledWithCustomersMember" decimals="-3" id="c71145478" unitRef="iso4217-usd">1654000</us-gaap:PropertyPlantAndEquipmentGross>
  <us-gaap:PropertyPlantAndEquipmentGross contextRef="i_2020-01-31_PropertyPlantAndEquipmentByTypeAxis-EquipmentInstalledWithCustomersMember" decimals="-3" id="c71145479" unitRef="iso4217-usd">1289000</us-gaap:PropertyPlantAndEquipmentGross>
  <us-gaap:PropertyPlantAndEquipmentGross contextRef="i_2021-01-31_PropertyPlantAndEquipmentByTypeAxis-AssetUnderConstructionMember" decimals="-3" id="c71145480" unitRef="iso4217-usd">998000</us-gaap:PropertyPlantAndEquipmentGross>
  <us-gaap:PropertyPlantAndEquipmentGross contextRef="i_2020-01-31_PropertyPlantAndEquipmentByTypeAxis-AssetUnderConstructionMember" decimals="-3" id="c71145481" unitRef="iso4217-usd">829000</us-gaap:PropertyPlantAndEquipmentGross>
  <us-gaap:PropertyPlantAndEquipmentGross contextRef="i_2021-01-31" decimals="-3" id="c71145482" unitRef="iso4217-usd">42422000</us-gaap:PropertyPlantAndEquipmentGross>
  <us-gaap:PropertyPlantAndEquipmentGross contextRef="i_2020-01-31" decimals="-3" id="c71145483" unitRef="iso4217-usd">38770000</us-gaap:PropertyPlantAndEquipmentGross>
  <us-gaap:PropertyPlantAndEquipmentNet contextRef="i_2021-01-31" decimals="-3" id="c71144873" unitRef="iso4217-usd">12089000</us-gaap:PropertyPlantAndEquipmentNet>
  <us-gaap:PropertyPlantAndEquipmentNet contextRef="i_2020-01-31" decimals="-3" id="c71144874" unitRef="iso4217-usd">13731000</us-gaap:PropertyPlantAndEquipmentNet>
  <us-gaap:PropertyPlantAndEquipmentPolicyTextBlock contextRef="d_2020-02-01_2021-01-31" id="c71152868">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;Property and equipment&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Property and equipment is recorded at cost.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Effective &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 1, 2020, &lt;/div&gt;we changed our accounting method for property &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' 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; have a material impact on our results of operations.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Depreciation of our property and equipment is generally recorded at the following rates:&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0" align="center"&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="width: 50%; text-align: left"&gt;Computer equipment and software&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 49%; text-align: left"&gt;Straight-line over &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1&lt;/div&gt; to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;13&lt;/div&gt; years&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left"&gt;Furniture and fixtures&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;Straight-line over &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3&lt;/div&gt; to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;14&lt;/div&gt; years&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left"&gt;Leasehold improvements&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;Straight-line over lesser of useful life or term of lease&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left"&gt;Equipment installed with customers&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;Straight-line over &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3&lt;/div&gt; years&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 9 --&gt; &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;Fully depreciated property and equipment are removed from the balance sheet when they are &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;no&lt;/div&gt; longer in use.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:PropertyPlantAndEquipmentPolicyTextBlock>
  <us-gaap:PropertyPlantAndEquipmentTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-9">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td&gt;Cost&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; width: 74%"&gt;Computer equipment and software&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;37,469&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;34,442&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt"&gt;Furniture and fixtures&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,494&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,432&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt"&gt;Leasehold improvements&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;807&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;778&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt"&gt;Equipment installed with customers&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,654&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,289&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt"&gt;Assets under construction&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;998&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;829&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;42,422&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;38,770&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left"&gt;Accumulated depreciation&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt"&gt;Computer equipment and software&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;28,123&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;23,730&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt"&gt;Furniture and fixtures&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,081&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;816&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt"&gt;Leasehold improvements&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;401&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;290&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt"&gt;Equipment installed with customers&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;728&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;203&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;30,333&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;25,039&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-bottom: 1pt"&gt;Net&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12,089&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;13,731&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:PropertyPlantAndEquipmentTextBlock>
  <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="d_2020-02-01_2021-01-31_PropertyPlantAndEquipmentByTypeAxis-ComputerEquipmentMember_RangeAxis-MinimumMember" id="c71146138">P1Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
  <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="d_2020-02-01_2021-01-31_PropertyPlantAndEquipmentByTypeAxis-ComputerEquipmentMember_RangeAxis-MaximumMember" id="c71146139">P13Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
  <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="d_2020-02-01_2021-01-31_PropertyPlantAndEquipmentByTypeAxis-FurnitureAndFixturesMember_RangeAxis-MinimumMember" id="c71146140">P3Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
  <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="d_2020-02-01_2021-01-31_PropertyPlantAndEquipmentByTypeAxis-FurnitureAndFixturesMember_RangeAxis-MaximumMember" id="c71146141">P14Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
  <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="d_2020-02-01_2021-01-31_PropertyPlantAndEquipmentByTypeAxis-EquipmentMember" id="c71146142">P3Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
  <us-gaap:ProvisionForDoubtfulAccounts contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145462" unitRef="iso4217-usd">1681000</us-gaap:ProvisionForDoubtfulAccounts>
  <us-gaap:ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy contextRef="d_2020-02-01_2021-01-31" id="c71152864">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Provision for Credit Losses&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy>
  <us-gaap:RepaymentsOfDebt contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145103" unitRef="iso4217-usd">10793000</us-gaap:RepaymentsOfDebt>
  <us-gaap:RepaymentsOfDebt contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145104" unitRef="iso4217-usd">322634000</us-gaap:RepaymentsOfDebt>
  <us-gaap:RepaymentsOfDebt contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145105" unitRef="iso4217-usd">78659000</us-gaap:RepaymentsOfDebt>
  <us-gaap:ResearchAndDevelopmentExpense contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71144940" unitRef="iso4217-usd">54066000</us-gaap:ResearchAndDevelopmentExpense>
  <us-gaap:ResearchAndDevelopmentExpense contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71144941" unitRef="iso4217-usd">53513000</us-gaap:ResearchAndDevelopmentExpense>
  <us-gaap:ResearchAndDevelopmentExpense contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71144942" unitRef="iso4217-usd">47872000</us-gaap:ResearchAndDevelopmentExpense>
  <us-gaap:ResearchDevelopmentAndComputerSoftwarePolicyTextBlock contextRef="d_2020-02-01_2021-01-31" id="c71152871">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Research and development costs&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;To date, we have &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; been significant.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ResearchDevelopmentAndComputerSoftwarePolicyTextBlock>
  <us-gaap:RestructuringAndRelatedCostExpectedCostRemaining1 contextRef="i_2021-01-31_RestructuringPlanAxis-Fiscal2021RestructuringPlanMember" decimals="-5" id="c71146641" unitRef="iso4217-usd">100000</us-gaap:RestructuringAndRelatedCostExpectedCostRemaining1>
  <us-gaap:RestructuringCharges contextRef="d_2020-05-01_2020-07-31_RestructuringPlanAxis-Fiscal2021RestructuringPlanMember" decimals="-5" id="c71146640" unitRef="iso4217-usd">2300000</us-gaap:RestructuringCharges>
  <us-gaap:RestructuringCharges contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145999" unitRef="iso4217-usd">2300000</us-gaap:RestructuringCharges>
  <us-gaap:RestructuringCharges contextRef="d_2019-02-01_2020-01-31" id="c71146000" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:RestructuringCharges contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71146001" unitRef="iso4217-usd">20000</us-gaap:RestructuringCharges>
  <us-gaap:RestructuringReserve contextRef="i_2020-01-31_RestructuringCostAndReserveAxis-EmployeeSeveranceMember" id="c71146005" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:RestructuringReserve contextRef="i_2020-01-31_RestructuringCostAndReserveAxis-FacilityClosingMember" id="c71146006" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:RestructuringReserve contextRef="i_2020-01-31" id="c71146007" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:RestructuringReserve contextRef="i_2021-01-31_RestructuringCostAndReserveAxis-EmployeeSeveranceMember" decimals="-3" id="c71146017" unitRef="iso4217-usd">70000</us-gaap:RestructuringReserve>
  <us-gaap:RestructuringReserve contextRef="i_2021-01-31_RestructuringCostAndReserveAxis-FacilityClosingMember" id="c71146018" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:RestructuringReserve contextRef="i_2021-01-31" decimals="-3" id="c71146019" unitRef="iso4217-usd">70000</us-gaap:RestructuringReserve>
  <us-gaap:RestructuringReserveAccrualAdjustment1 contextRef="d_2020-02-01_2021-01-31_RestructuringCostAndReserveAxis-EmployeeSeveranceMember" decimals="-3" id="c71146008" unitRef="iso4217-usd">1717000</us-gaap:RestructuringReserveAccrualAdjustment1>
  <us-gaap:RestructuringReserveAccrualAdjustment1 contextRef="d_2020-02-01_2021-01-31_RestructuringCostAndReserveAxis-FacilityClosingMember" decimals="-3" id="c71146009" unitRef="iso4217-usd">583000</us-gaap:RestructuringReserveAccrualAdjustment1>
  <us-gaap:RestructuringReserveAccrualAdjustment1 contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71146010" unitRef="iso4217-usd">2300000</us-gaap:RestructuringReserveAccrualAdjustment1>
  <us-gaap:RestructuringReserveTranslationAdjustment contextRef="d_2020-02-01_2021-01-31_RestructuringCostAndReserveAxis-EmployeeSeveranceMember" decimals="-3" id="c71146014" unitRef="iso4217-usd">-10000</us-gaap:RestructuringReserveTranslationAdjustment>
  <us-gaap:RestructuringReserveTranslationAdjustment contextRef="d_2020-02-01_2021-01-31_RestructuringCostAndReserveAxis-FacilityClosingMember" id="c71146015" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:RestructuringReserveTranslationAdjustment contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71146016" unitRef="iso4217-usd">-10000</us-gaap:RestructuringReserveTranslationAdjustment>
  <us-gaap:RetainedEarningsAccumulatedDeficit contextRef="i_2018-02-01_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201409Member" decimals="-3" id="c71146209" unitRef="iso4217-usd">3600000</us-gaap:RetainedEarningsAccumulatedDeficit>
  <us-gaap:RetainedEarningsAccumulatedDeficit contextRef="i_2018-02-01_AdjustmentsForNewAccountingPronouncementsAxis-TheAccountingStandardsUpdate201616Member" decimals="-3" id="c71146223" unitRef="iso4217-usd">4000000</us-gaap:RetainedEarningsAccumulatedDeficit>
  <us-gaap:RetainedEarningsAccumulatedDeficit contextRef="i_2021-01-31" decimals="-3" id="c71144915" unitRef="iso4217-usd">-83670000</us-gaap:RetainedEarningsAccumulatedDeficit>
  <us-gaap:RetainedEarningsAccumulatedDeficit contextRef="i_2020-01-31" decimals="-3" id="c71144916" unitRef="iso4217-usd">-135770000</us-gaap:RetainedEarningsAccumulatedDeficit>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71144928" unitRef="iso4217-usd">348664000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71144929" unitRef="iso4217-usd">325791000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71144930" unitRef="iso4217-usd">275171000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2020-02-01_2021-01-31_StatementGeographicalAxis-US" decimals="-3" id="c71146050" unitRef="iso4217-usd">211232000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-02-01_2020-01-31_StatementGeographicalAxis-US" decimals="-3" id="c71146051" unitRef="iso4217-usd">202814000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-02-01_2019-01-31_StatementGeographicalAxis-US" decimals="-3" id="c71146052" unitRef="iso4217-usd">165115000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2020-02-01_2021-01-31_StatementGeographicalAxis-EMEAMember" decimals="-3" id="c71146053" unitRef="iso4217-usd">94163000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-02-01_2020-01-31_StatementGeographicalAxis-EMEAMember" decimals="-3" id="c71146054" unitRef="iso4217-usd">82596000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-02-01_2019-01-31_StatementGeographicalAxis-EMEAMember" decimals="-3" id="c71146055" unitRef="iso4217-usd">80094000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2020-02-01_2021-01-31_StatementGeographicalAxis-CA" decimals="-3" id="c71146056" unitRef="iso4217-usd">29388000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-02-01_2020-01-31_StatementGeographicalAxis-CA" decimals="-3" id="c71146057" unitRef="iso4217-usd">27304000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-02-01_2019-01-31_StatementGeographicalAxis-CA" decimals="-3" id="c71146058" unitRef="iso4217-usd">18167000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2020-02-01_2021-01-31_StatementGeographicalAxis-AsiaPacificMember" decimals="-3" id="c71146059" unitRef="iso4217-usd">13881000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-02-01_2020-01-31_StatementGeographicalAxis-AsiaPacificMember" decimals="-3" id="c71146060" unitRef="iso4217-usd">13077000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-02-01_2019-01-31_StatementGeographicalAxis-AsiaPacificMember" decimals="-3" id="c71146061" unitRef="iso4217-usd">11795000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2020-02-01_2021-01-31_ProductOrServiceAxis-ServiceMember" decimals="-3" id="c71146066" unitRef="iso4217-usd">309731000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-02-01_2020-01-31_ProductOrServiceAxis-ServiceMember" decimals="-3" id="c71146067" unitRef="iso4217-usd">284654000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-02-01_2019-01-31_ProductOrServiceAxis-ServiceMember" decimals="-3" id="c71146068" unitRef="iso4217-usd">241543000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2020-02-01_2021-01-31_ProductOrServiceAxis-ProfessionalServicesAndOtherMember" decimals="-3" id="c71146069" unitRef="iso4217-usd">33879000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-02-01_2020-01-31_ProductOrServiceAxis-ProfessionalServicesAndOtherMember" decimals="-3" id="c71146070" unitRef="iso4217-usd">33555000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-02-01_2019-01-31_ProductOrServiceAxis-ProfessionalServicesAndOtherMember" decimals="-3" id="c71146071" unitRef="iso4217-usd">27774000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2020-02-01_2021-01-31_ProductOrServiceAxis-LicenseMember" decimals="-3" id="c71146072" unitRef="iso4217-usd">5054000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-02-01_2020-01-31_ProductOrServiceAxis-LicenseMember" decimals="-3" id="c71146073" unitRef="iso4217-usd">7582000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-02-01_2019-01-31_ProductOrServiceAxis-LicenseMember" decimals="-3" id="c71146074" unitRef="iso4217-usd">5854000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerPolicyTextBlock contextRef="d_2020-02-01_2021-01-31" id="c71152870">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Revenue recognition&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 10 --&gt; &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;License&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Services&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 monthly basis based on the customer usage for that period.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Professional Services &amp;amp; Other&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; may &lt;/div&gt;require judgment. Judgment is also needed in assessing the ability to collect the corresponding receivables.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; 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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Costs to obtain a contract with a customer&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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;div style="display: inline; font-style: italic; font: inherit;"&gt;four&lt;/div&gt; to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;six&lt;/div&gt; 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;one&lt;/div&gt; year or less.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 11 --&gt; &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Contract assets and liabilities&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; color: black"&gt;The payment terms and conditions in our customer contracts &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; may &lt;/div&gt;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 when or as 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. &lt;/div&gt;Contract liabilities primarily relate to the advance consideration received from customers and is presented as deferred revenue. &lt;div style="display: inline; color: black"&gt;Deferred revenue results from customer payments in advance of our satisfaction of the associated performance obligation(s) 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;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:RevenueFromContractWithCustomerPolicyTextBlock>
  <us-gaap:RevenueFromContractWithCustomerTextBlock contextRef="d_2020-02-01_2021-01-31" id="s1792244">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Note &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;19&lt;/div&gt; &amp;#x2013; Contract Balances, Performance Obligations and Contract Costs&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Deferred Revenue&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;The following table presents the changes in the deferred revenue balance as follows:&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Deferred Revenue&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="width: 87%; text-indent: -0.5in; padding-left: 0.5in"&gt;Balance at January 31, 2019&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;35,091&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Recognition of previously deferred revenue&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(30,580&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Deferral of revenue&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;37,408&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Increases from business combinations, net&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;551&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Effect of movements in foreign exchange&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(407&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-indent: -0.5in; padding-left: 0.5in"&gt;Balance at January 31, 2020&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;42,063&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Recognition of previously deferred revenue&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(37,843&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Deferral of revenue&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;46,386&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Increases from business combinations, net&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;39&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Effect of movements in foreign exchange&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;646&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-bottom: 1pt; text-indent: -15pt; padding-left: 15pt"&gt;Balance at January 31, 2021&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;51,291&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Current&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;49,878&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Long-term&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,413&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Performance Obligations&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;As of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021, &lt;/div&gt;approximately &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$297.6&lt;/div&gt; million of revenue is expected to be recognized in the future related to performance obligations that are unsatisfied (or partially unsatisfied) at the end of the reporting period. We expect to recognize revenue on approximately &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;80%&lt;/div&gt; of these remaining performance obligations over the next &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;24&lt;/div&gt; months with the balance recognized thereafter.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Contract Assets&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;The following table presents the changes in the contract assets balance as follows:&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Contract Assets&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="width: 87%; text-indent: -0.5in; padding-left: 0.5in"&gt;Balance at January 31, 2019&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;812&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Transfers to trade receivables from contract assets&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(490&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;791&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Effect of movements in foreign exchange&lt;/td&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(6&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-indent: -0.5in; padding-left: 0.5in"&gt;Balance at January 31, 2020&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,107&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Transfers to trade receivables from contract assets&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(563&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;783&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; text-align: left"&gt;Effect of movements in foreign exchange&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;26&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-bottom: 1pt; text-indent: -15pt; padding-left: 15pt"&gt;Balance at January 31, 2021&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,353&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Contract Costs&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Capitalized contract costs net of accumulated amortization is &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$12.9&lt;/div&gt; million at &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021 (&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$9.8&lt;/div&gt; million at &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2020). &lt;/div&gt;Capitalized contract costs are amortized consistent with the pattern of transfer to the customer for the goods and services to which the asset relates. &lt;div style="display: inline; color: black"&gt;The total contract cost amortization included in sales and marketing expenses was approximately &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$3.3&lt;/div&gt; million, &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$2.5&lt;/div&gt; million and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$1.8&lt;/div&gt; million for the years ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019,&lt;/div&gt; respectively. &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:RevenueFromContractWithCustomerTextBlock>
  <us-gaap:RevenueRemainingPerformanceObligation contextRef="i_2021-01-31_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis-RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain-2021-02-01" decimals="-5" id="c71146625" unitRef="iso4217-usd">297600000</us-gaap:RevenueRemainingPerformanceObligation>
  <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1 contextRef="i_2021-01-31_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis-RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain-2021-02-01" id="c71146627">P2Y</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
  <us-gaap:RevenueRemainingPerformanceObligationPercentage contextRef="i_2021-01-31_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis-RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain-2021-02-01" decimals="1" id="c71146626" unitRef="xbrli-pure">0.8</us-gaap:RevenueRemainingPerformanceObligationPercentage>
  <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145558" unitRef="iso4217-usd">2337000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
  <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145559" unitRef="iso4217-usd">6439000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
  <us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-6">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 74%; text-align: left"&gt;Trade accounts receivable&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;39,536&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;37,121&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Less: Provision for credit losses&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(2,330&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(2,003&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;37,206&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;35,118&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock>
  <us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-12">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="text-align: right; border-bottom: Black 1pt solid"&gt;2020&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 74%; text-align: left"&gt;Accrued compensation and benefits&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;24,643&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;20,613&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left"&gt;Accrued professional fees&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,188&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,010&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Other accrued liabilities&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;13,048&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;13,253&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;38,879&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;34,876&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock>
  <us-gaap:ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-3">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Peoplevox&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Kontainers&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;ShipTrack&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 61%; text-align: left"&gt;Customer agreements and relationships (years)&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;10&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;13&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left"&gt;Existing technology (years)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left"&gt;Trade names (years)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;N/A&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left"&gt;Non-compete covenants (years)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;/div&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Visual Compliance&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;/div&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;CORE&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;/div&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;/div&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;STEPcom&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;/div&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Best Transport&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 46%; text-align: left"&gt;Customer agreements and relationships (years)&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;14&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;13&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;9&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left"&gt;Existing technology (years)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;7&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;N/A&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left"&gt;Trade names (years)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left"&gt;Non-compete covenants (years)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Aljex&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Velocity Mail&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;PinPoint&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 61%; text-align: left"&gt;Customer agreements and relationships (years)&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;13&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;9&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left"&gt;Existing technology (years)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;N/A&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left"&gt;Trade names (years)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left"&gt;Non-compete covenants (years)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock>
  <us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-2">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Peoplevox&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Kontainers&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;ShipTrack&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Total&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td&gt;Purchase price consideration:&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: -10pt; width: 48%; text-align: left; padding-left: 20pt"&gt;Cash, less cash acquired related to Peoplevox ($1,634), Kontainers (overdraft of $13) and ShipTrack ($529)&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;24,137&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5,237&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;19,029&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;48,403&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left; padding-left: 10pt"&gt;Consideration payable&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;100&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;100&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left; padding-left: 10pt"&gt;Contingent consideration&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,414&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,825&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4,239&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left; padding-bottom: 1pt; padding-left: 10pt"&gt;Net working capital adjustments (receivable) / payable&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(42&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(218&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;82&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(178&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;24,095&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6,533&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;21,936&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;52,564&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left"&gt;Allocated to:&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left; padding-left: 10pt"&gt;Current assets, excluding cash acquired&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;485&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;253&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,846&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,584&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left; padding-left: 10pt"&gt;Right-of-use assets&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;151&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;151&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left; padding-left: 10pt"&gt;Current liabilities&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(776&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(989&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(668&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(2,433&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left; padding-left: 10pt"&gt;Deferred revenue&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(748&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(102&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(204&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,054&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left; padding-left: 10pt"&gt;Lease obligations&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(151&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(151&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left; padding-left: 10pt"&gt;Deferred income tax liability&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,615&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(4,012&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(5,627&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-bottom: 1pt; padding-left: 10pt"&gt;Debt&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(728&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(728&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left"&gt;Net tangible assets (liabilities) assumed&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(2,654&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(838&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(3,766&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(7,258&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left"&gt;Finite life intangible assets acquired:&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Customer agreements and relationships&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,631&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;800&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,905&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8,336&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Existing technology&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;7,651&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,000&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;11,102&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;21,753&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left; padding-left: 10pt"&gt;Trade names&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;30&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;77&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;107&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left; padding-left: 10pt"&gt;Non-compete covenants&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;285&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;80&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;291&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;656&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-bottom: 1pt"&gt;Goodwill&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;15,182&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,461&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;10,327&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;28,970&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;24,095&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6,533&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;21,936&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;52,564&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-weight: bold; text-align: right; border-bottom: Black 1pt solid"&gt;Visual Compliance&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="text-align: right; border-bottom: Black 1pt solid"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;CORE&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="text-align: right; border-bottom: Black 1pt solid"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;STEP-com&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="text-align: right; border-bottom: Black 1pt solid"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Best-Transport&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="text-align: right; border-bottom: Black 1pt solid"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Total&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td&gt;Purchase price consideration:&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: -10pt; padding-left: 20pt; width: 35%; text-align: left"&gt;Cash, less cash acquired related to Visual Compliance ($170), CORE ($213), STEPcom ($2,700) and BestTransport ($507)&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;239,863&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;21,833&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;18,639&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;11,718&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;292,053&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt"&gt;Common shares issued&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;9,045&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;9,045&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Contingent consideration&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,450&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,450&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt"&gt;Net working capital adjustments payable / (receivable)&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,147&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;62&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;250&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,459&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;250,055&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;23,345&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;18,889&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;11,718&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;304,007&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left"&gt;Allocated to:&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Current assets, excluding cash acquired&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6,403&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;689&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,470&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;815&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;9,377&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Property and equipment&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;30&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,048&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;257&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;35&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,370&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Deferred income tax asset&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;30,924&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;30,924&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Right-of-use assets&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,188&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;68&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;232&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;194&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,682&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Current liabilities&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(840&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(352&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(874&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(284&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(2,350&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Deferred revenue&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(10,267&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(278&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(813&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(9&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(11,367&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Lease obligations&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,188&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(68&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(232&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(194&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,682&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt"&gt;Deferred income tax liability&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(282&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(3,332&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(2,316&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,352&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(7,282&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Net tangible assets (liabilities) assumed&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;25,968&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,225&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(2,276&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(795&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;21,672&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left"&gt;Finite life intangible assets acquired:&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Customer agreements and relationships&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;32,186&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4,600&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;10,839&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,000&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;50,625&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Existing technology&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;69,422&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6,800&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,800&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;80,022&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Trade names&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;528&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;200&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;102&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;50&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;880&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Non-compete covenants&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,166&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;300&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;205&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;150&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,821&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-bottom: 1pt"&gt;Goodwill&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;118,785&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12,670&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;10,019&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5,513&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;146,987&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;250,055&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;23,345&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;18,889&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;11,718&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;304,007&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Aljex&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Velocity Mail&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;PinPoint&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Total&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td&gt;Purchase price consideration:&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="width: 48%; text-align: left; padding-left: 10pt"&gt;Cash, less cash acquired related to Aljex ($193), Velocity Mail (nil) and PinPoint ($769)&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;32,382&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;26,107&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;9,443&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;67,932&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt"&gt;Common shares issued&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,536&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,536&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left; padding-left: 10pt"&gt;Contingent consideration&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;714&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;714&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left; padding-bottom: 1pt; padding-left: 10pt"&gt;Net working capital adjustments (receivable) / payable&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(152&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(102&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;36&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(218&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;32,230&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;26,005&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;11,729&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;69,964&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left"&gt;Allocated to:&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left; padding-left: 10pt"&gt;Current assets, excluding cash acquired&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;607&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,407&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;599&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,613&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left; padding-left: 10pt"&gt;Other long-term assets&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;501&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;501&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left; padding-left: 10pt"&gt;Current liabilities&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(266&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(81&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(559&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(906&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left; padding-left: 10pt"&gt;Deferred revenue&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,024&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(70&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(574&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,668&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left; padding-bottom: 1pt; padding-left: 10pt"&gt;Deferred income tax liability&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(4,200&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(2,077&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(6,277&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left; padding-left: 0pt"&gt;Net tangible (liabilities) assets assumed&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(4,883&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,757&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(2,611&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(5,737&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left"&gt;Finite life intangible assets acquired:&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Customer agreements and relationships&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5,300&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;7,800&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;7,758&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;20,858&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Existing technology&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12,400&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;7,600&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;20,000&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt"&gt;Tradenames&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;280&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;100&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;207&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;587&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left; padding-left: 10pt"&gt;Non-compete covenants&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;230&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;300&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;69&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;599&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-bottom: 1pt"&gt;Goodwill&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;18,903&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8,448&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6,306&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;33,657&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;32,230&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;26,005&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;11,729&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;69,964&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock>
  <us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-34">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-style: italic"&gt;Year Ended&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2019&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 61%; text-align: left"&gt;Trade accounts receivable&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;143&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,733&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(135&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left"&gt;Other accounts receivable&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(7,098&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(2,547&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(451&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left"&gt;Prepaid expenses and other&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(5,029&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(5,942&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(4,466&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td&gt;Inventory&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;99&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(345&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;74&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left"&gt;Accounts payable&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(686&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,768&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,065&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left"&gt;Accrued liabilities&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(999&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,265&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,570&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left"&gt;Income taxes payable&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,835&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,550&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(2,423&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left"&gt;Operating leases&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;283&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;546&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Deferred revenue&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5,877&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(4,184&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,047&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(3,575&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(5,256&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;)&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(3,849&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock>
  <us-gaap:ScheduleOfCommonStockOutstandingRollForwardTableTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-15">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-style: italic"&gt;(thousands of shares)&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2019&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 61%; text-align: left"&gt;Balance, beginning of year&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;84,156&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;76,865&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;76,773&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt"&gt;Shares issued:&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 20pt; text-align: left"&gt;Stock options and share units exercised&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;338&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;95&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;46&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 20pt"&gt;Issuance of common shares&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6,900&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 20pt; text-align: left; padding-bottom: 1pt"&gt;Acquisitions (Note 3)&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;296&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;46&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Balance, end of year&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;84,494&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;84,156&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;76,865&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfCommonStockOutstandingRollForwardTableTextBlock>
  <us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-26">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-style: italic"&gt;Year Ended&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2019&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left"&gt;Current income tax expense&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; width: 61%"&gt;Canada&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,875&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,020&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,037&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;United States&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(3,050&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,496&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,298&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt"&gt;Other countries&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4,921&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;779&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,707&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,746&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5,295&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6,042&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left"&gt;Deferred income tax expense (recovery)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt"&gt;Canada&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;7,047&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5,008&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,531&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;United States&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;9,537&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,390&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;67&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt"&gt;Other countries&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(2,061&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(655&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(407&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;14,523&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5,743&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,191&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;18,269&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;11,038&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8,233&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock>
  <us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-27">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td&gt;Assets&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; width: 74%; text-align: left"&gt;Accrued liabilities not currently deductible&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4,471&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;14,838&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Accumulated net operating losses&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12,866&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;10,579&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Corporate minimum taxes&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,596&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Difference between tax and accounting basis of property and equipment&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;23,754&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;33,929&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt"&gt;Research and development and other tax credits and expenses&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,649&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;756&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left"&gt;Total deferred income tax assets&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;44,336&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;60,102&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td&gt;Liabilities&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Difference between tax and accounting basis of intangible assets&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(45,030&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(41,381&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Difference between tax and accounting basis of property and equipment&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt"&gt;Other temporary differences&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(2,109&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,716&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Total deferred income tax liabilities&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(47,139&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(43,097&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left"&gt;Net deferred income taxes&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(2,803&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;17,005&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt"&gt;Valuation allowance&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(11,365&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(10,470&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Net deferred income taxes, net of valuation allowance&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(14,168&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6,535&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock>
  <us-gaap:ScheduleOfDerivativeAssetsAtFairValueTableTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-5">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Fair Value of Derivatives Designated as Hedge Instruments&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Fair Value of Derivatives Not Designated As Hedge Instruments&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Fair Value&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left"&gt;Derivative assets:&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="width: 49%; text-align: left; padding-bottom: 1pt"&gt;Equity contracts&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; width: 14%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; width: 14%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8,001&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; width: 14%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8,001&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;Fair Value of Derivatives Designated as Hedge Instruments&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;Fair Value of Derivatives Not Designated As Hedge Instruments&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;Fair Value&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left"&gt;Derivative assets:&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="width: 49%; text-align: left; padding-bottom: 1pt"&gt;Equity contracts&lt;/td&gt; &lt;td style="width: 1%; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; width: 14%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; width: 1%; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; width: 14%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5,656&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; width: 1%; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; width: 14%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5,656&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfDerivativeAssetsAtFairValueTableTextBlock>
  <us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-16">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-style: italic"&gt;Year Ended&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style=" margin-top: 0; margin-bottom: 0"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style=" margin-top: 0; margin-bottom: 0"&gt;January 31,&lt;/div&gt; &lt;div style=" margin-top: 0; margin-bottom: 0"&gt;2021&lt;/div&gt;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style=" margin-top: 0; margin-bottom: 0"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" margin-top: 0; margin-bottom: 0"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" margin-top: 0; margin-bottom: 0"&gt;January 31,&lt;/div&gt; &lt;div style=" margin-top: 0; margin-bottom: 0"&gt;2020&lt;/div&gt;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" margin-top: 0; margin-bottom: 0"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" margin-top: 0; margin-bottom: 0"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" margin-top: 0; margin-bottom: 0"&gt;January 31,&lt;/div&gt; &lt;div style=" margin-top: 0; margin-bottom: 0"&gt;2019&lt;/div&gt;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" margin-top: 0; margin-bottom: 0"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 61%; text-align: left; padding-bottom: 1pt"&gt;Net income for purposes of calculating basic and diluted earnings per share&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;52,100&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; width: 1%; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;36,997&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; width: 1%; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;31,277&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td&gt;Weighted average shares outstanding&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;84,360&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;81,659&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;76,832&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left"&gt;Dilutive effect of employee stock options&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;358&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;318&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;205&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Dilutive effect of restricted and performance share units&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,038&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;890&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;754&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Weighted average common and common equivalent shares outstanding&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;85,756&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;82,867&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;77,791&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td&gt;Earnings per share&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt"&gt;Basic&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;0.62&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;0.45&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;0.41&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; padding-bottom: 1pt"&gt;Diluted&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;0.61&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;0.45&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;0.40&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock>
  <us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-28">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-style: italic"&gt;Year Ended&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2019&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 61%; text-align: left"&gt;Income before income taxes&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;70,369&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;48,033&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;39,510&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left"&gt;Combined basic Canadian statutory rates&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;26.5&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;%&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;26.5&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;%&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;26.5&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;%&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left"&gt;Income tax expense based on the above rates&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;18,648&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12,729&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;10,470&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left"&gt;Increase (decrease) in income taxes resulting from:&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Permanent differences including amortization of intangible assets&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;875&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(673&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(133&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Effect of differences between Canadian and foreign tax rates&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(600&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(274&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(172&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Effect of rate changes on current year timing differences&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,063&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(609&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(245&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Adjustments relating to previous periods&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,034&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;94&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(973&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Increase (decrease) in accruals for uncertain tax positions&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,289&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,042&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(515&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Valuation allowance&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;254&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;692&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(344&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Stock based compensation&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;100&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;352&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;231&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt"&gt;Other, including foreign exchange&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(200&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(231&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(86&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Income tax expense&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;18,269&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;11,038&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8,233&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock>
  <us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-17">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-style: italic"&gt;Year Ended&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2019&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 61%"&gt;Cost of revenues&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;319&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;220&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;160&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left"&gt;Sales and marketing&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;896&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;706&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;436&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left"&gt;Research and development&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;404&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;281&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;184&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left; padding-bottom: 1pt"&gt;General and administrative&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4,694&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,702&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,930&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Effect on net income&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6,313&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4,909&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,710&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock>
  <us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-37">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: center; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: center; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-weight: normal; text-align: left"&gt;Total long-lived assets&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="width: 74%; text-align: left; padding-left: 7.5pt"&gt;United States&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;92,442&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;114,980&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left; padding-left: 7.5pt"&gt;Europe, Middle-East and Africa&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;39,769&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;31,299&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 7.5pt"&gt;Canada&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;107,472&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;111,264&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left; padding-bottom: 1pt; padding-left: 7.5pt"&gt;Asia Pacific&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12,398&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;13,144&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;252,081&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;270,687&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock>
  <us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-10">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td&gt;Cost&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; width: 74%"&gt;Customer agreements and relationships&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;240,479&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;226,514&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt"&gt;Existing technology&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;295,161&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;262,614&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt"&gt;Trade names&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8,844&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8,582&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt"&gt;Non-compete covenants&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;10,939&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;9,985&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;555,423&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;507,695&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left"&gt;Accumulated amortization&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt"&gt;Customer agreements and relationships&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;119,361&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;98,241&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt"&gt;Existing technology&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;183,539&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;142,757&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt"&gt;Trade names&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5,996&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5,124&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt"&gt;Non-compete covenants&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6,535&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4,617&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;315,431&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;250,739&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-bottom: 1pt"&gt;Net&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;239,992&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;256,956&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock>
  <us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-25">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-style: italic"&gt;Year Ended&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2019&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 61%"&gt;Canada&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;31,307&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;19,557&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;16,715&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left"&gt;United States&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;26,072&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;19,962&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;11,077&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Other countries&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12,990&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8,516&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;11,718&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;70,369&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;48,035&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;39,510&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock>
  <us-gaap:ScheduleOfNonvestedShareActivityTableTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-21">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Number of Stock Options Outstanding&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Weighted-&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Average Grant-Date Fair Value per Share&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 70%"&gt;Balance at January 31, 2019&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;325,218&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6.18&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt"&gt;Granted&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;367,173&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;$&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8.99&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt"&gt;Vested&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(259,269&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;$&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6.96&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; padding-bottom: 1pt"&gt;Forfeited&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(23,469&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;7.69&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td&gt;Balance at January 31, 2020&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;409,653&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;$&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8.03&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt"&gt;Granted&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;381,859&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;10.19&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt"&gt;Vested&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(266,238&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8.19&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; padding-bottom: 1pt"&gt;Forfeited&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(23,619&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4.87&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-bottom: 1pt"&gt;Balance at January 31, 2021&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;501,655&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;9.52&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfNonvestedShareActivityTableTextBlock>
  <us-gaap:ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-32">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-style: italic"&gt;Year Ended&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2019&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 61%; text-align: left"&gt;Acquisition-related costs&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,981&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,457&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,187&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left"&gt;Contingent consideration adjustments&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,946&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;340&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;591&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Restructuring plans&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,300&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;20&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,335&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,797&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,798&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock>
  <us-gaap:ScheduleOfRestructuringReserveByTypeOfCostTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-33">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right; text-indent: 1.5pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right; text-indent: 1.5pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Workforce&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right; text-indent: 1.5pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Reduction&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right; text-indent: 1.5pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Office Closures&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Total&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td&gt;Balance at January 31, 2020&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="width: 61%; text-align: left; padding-left: 10pt"&gt;Accruals and adjustments&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,717&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;583&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,300&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left; padding-left: 10pt"&gt;Cash draw downs&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,657&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(583&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(2,240&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left; padding-bottom: 1pt; padding-left: 10pt"&gt;Foreign exchange&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;10&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;10&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-bottom: 1pt"&gt;Balance at January 31, 2021&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;70&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;70&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfRestructuringReserveByTypeOfCostTextBlock>
  <us-gaap:ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-35">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-style: italic"&gt;Year Ended&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2019&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td&gt;Revenues&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; width: 61%"&gt;United States&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;211,232&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;202,814&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;165,115&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt"&gt;Europe, Middle-East and Africa&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;94,163&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;82,596&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;80,094&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt"&gt;Canada&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;29,388&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;27,304&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;18,167&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt"&gt;Asia Pacific&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;13,881&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;13,077&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;11,795&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;348,664&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;325,791&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;275,171&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock>
  <us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-36">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-style: italic"&gt;Year Ended&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2019&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td&gt;Revenues&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; width: 61%"&gt;Services&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;309,731&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;284,654&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;241,543&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt"&gt;Professional services and other&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;33,879&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;33,555&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;27,774&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-bottom: 1pt; padding-left: 10pt"&gt;Licenses&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5,054&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;7,582&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5,854&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;348,664&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;325,791&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;275,171&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock>
  <us-gaap:ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-20">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td colspan="3" style="text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="11" style="border-top: Black 1pt solid; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Options Outstanding&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="border-top: Black 1pt solid; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Options Exercisable&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td colspan="3" style="font-style: italic; text-align: left"&gt;Range of Exercise Prices&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;Weighted &lt;br /&gt;Average Exercise Price&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;Number of Stock Options&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;Weighted Average Remaining Contractual Life (years)&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;Weighted Average Exercise Price&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;Number of Stock Options&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: center; width: 7%; padding-left: 0pt"&gt;$11.32&lt;/td&gt; &lt;td style="text-align: center; padding-left: 0pt; width: 7%"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;#x2013;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: center; padding-left: 0pt; width: 7%"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$22.34&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 13%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;21.06&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 13%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;220,559&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 13%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2.9&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 13%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;21.01&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;203,459&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: center; padding-left: 0pt"&gt;$25.65&lt;/td&gt; &lt;td style="text-align: center; padding-left: 0pt"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;#x2013;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: center; padding-left: 0pt"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$27.23&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;$&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;27.22&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;217,381&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4.2&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;$&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;27.23&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;186,707&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: center; padding-left: 0pt"&gt;$37.66&lt;/td&gt; &lt;td style="text-align: center; padding-left: 0pt"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;#x2013;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: center; padding-left: 0pt"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$39.30&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;$&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;38.09&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;636,869&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5.7&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;$&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;37.96&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;255,899&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: center; padding-left: 0pt"&gt;$49.04&lt;/td&gt; &lt;td style="text-align: center; padding-left: 0pt"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;#x2013;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: center; padding-left: 0pt"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$55.04&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;54.11&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;72,911&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6.7&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td colspan="3" style="text-align: center; padding-bottom: 1pt; padding-left: 12pt"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;33.77&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,147,720&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4.9&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;29.52&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;646,065&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock>
  <us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-19">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Number of Stock Options Outstanding&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Weighted-&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Average Exercise&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Price&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Weighted- Average Remaining Contractual Life (years)&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Aggregate Intrinsic&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Value&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(in millions)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 40%"&gt;Balance at January 31, 2019&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;879,338&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;21.41&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4.7&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8.7&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt"&gt;Granted&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;367,173&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;$&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;38.06&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt"&gt;Exercised&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(94,970&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;)&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;$&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;15.62&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; padding-bottom: 1pt"&gt;Forfeited&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(23,719&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;31.93&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td&gt;Balance at January 31, 2020&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,127,822&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;$&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;26.82&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4.6&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;$&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;20.2&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt"&gt;Granted&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;381,859&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;41.51&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt"&gt;Exercised&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(338,342&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;18.43&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; padding-bottom: 1pt"&gt;Forfeited&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(23,619&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;33.88&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-bottom: 1pt"&gt;Balance at January 31, 2021&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,147,720&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;33.77&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4.9&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;28.1&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Vested or expected to vest at January 31, 2021&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1,147,720&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;33.77&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4.9&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;28.1&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-bottom: 1pt"&gt;Exercisable at January 31, 2021&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;646,065&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;29.52&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4.3&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;18.6&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock>
  <us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-18">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-style: italic"&gt;Year Ended&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31, 2021&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;January 31, 2020&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;January 31, 2019&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left"&gt;Expected dividend yield (%)&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="width: 61%; text-align: left"&gt;Expected volatility (%)&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;26.4&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;23.5&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;23.6&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left"&gt;Risk-free rate (%)&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;0.7&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1.4&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2.0&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left"&gt;Expected option life (years)&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock>
  <us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-23">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Number of RSUs Outstanding&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Weighted-&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Average Granted Date Fair Value&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Weighted- Average Remaining Contractual Life (years)&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Aggregate Intrinsic&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Value&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(in millions)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 48%"&gt;Balance at January 31, 2019&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;337,066&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;14.42&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5.6&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;10.6&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; padding-bottom: 1pt"&gt;Granted&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;37,611&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;38.04&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td&gt;Balance at January 31, 2020&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;374,677&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;$&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;16.57&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5.0&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;$&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;16.8&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; padding-bottom: 1pt"&gt;Granted&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;57,518&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;43.25&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-bottom: 1pt"&gt;Balance at January 31, 2021&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;432,195&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;19.98&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4.7&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;25.2&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Vested or expected to vest at January 31, 2021&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;432,195&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;19.98&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4.7&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;25.2&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-bottom: 1pt"&gt;Exercisable at January 31, 2021&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;375,845&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;16.50&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4.1&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;21.9&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock>
  <us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-30">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 74%; text-align: left"&gt;Liability, beginning of year&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6,650&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;7,824&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left"&gt;Gross increases &amp;#x2013; current period&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,502&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;139&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt"&gt;Lapsing due to statutes of limitations&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(759&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;)&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(1,313&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Liability, end of year&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8,393&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6,650&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock>
  <us-gaap:SegmentReportingDisclosureTextBlock contextRef="d_2020-02-01_2021-01-31" id="s1792252">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Note &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;22&lt;/div&gt; - Segmented Information&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;We review our operating results, assess our performance, make decisions about resources, and generate discrete financial information at the single enterprise level. Accordingly, we have determined that we operate in &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;one&lt;/div&gt; reportable business segment providing logistics technology solutions. The following tables provide our disaggregated revenue information by geographic location of customer and revenue type:&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td style="font-style: italic"&gt;Year Ended&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2019&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td&gt;Revenues&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; width: 61%"&gt;United States&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;211,232&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;202,814&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;165,115&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt"&gt;Europe, Middle-East and Africa&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;94,163&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;82,596&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;80,094&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt"&gt;Canada&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;29,388&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;27,304&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;18,167&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt"&gt;Asia Pacific&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;13,881&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;13,077&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;11,795&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;348,664&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;325,791&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;275,171&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td style="font-style: italic"&gt;Year Ended&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2019&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td&gt;Revenues&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 10pt; width: 61%"&gt;Services&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;309,731&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;284,654&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;241,543&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-left: 10pt"&gt;Professional services and other&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;33,879&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;33,555&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;27,774&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-bottom: 1pt; padding-left: 10pt"&gt;Licenses&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5,054&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;7,582&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5,854&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;348,664&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;325,791&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;275,171&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 41 --&gt;   &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;    &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: center; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;January 31,&lt;/td&gt;  &lt;td style="border-top: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom"&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: center; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;2021&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;2020&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="font-weight: normal; text-align: left"&gt;Total long-lived assets&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="width: 74%; text-align: left; padding-left: 7.5pt"&gt;United States&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;92,442&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;114,980&lt;/div&gt;&lt;/td&gt;  &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left; padding-left: 7.5pt"&gt;Europe, Middle-East and Africa&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;39,769&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;31,299&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-left: 7.5pt"&gt;Canada&lt;/td&gt;  &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;107,472&lt;/div&gt;&lt;/td&gt;  &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;111,264&lt;/div&gt;&lt;/td&gt;  &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt;  &lt;td style="text-align: left; padding-bottom: 1pt; padding-left: 7.5pt"&gt;Asia Pacific&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12,398&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;13,144&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;252,081&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;270,687&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: Black 2pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;/div&gt;&lt;/div&gt;</us-gaap:SegmentReportingDisclosureTextBlock>
  <us-gaap:SellingAndMarketingExpense contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71144937" unitRef="iso4217-usd">38785000</us-gaap:SellingAndMarketingExpense>
  <us-gaap:SellingAndMarketingExpense contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71144938" unitRef="iso4217-usd">40389000</us-gaap:SellingAndMarketingExpense>
  <us-gaap:SellingAndMarketingExpense contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71144939" unitRef="iso4217-usd">36873000</us-gaap:SellingAndMarketingExpense>
  <us-gaap:ShareBasedCompensation contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145073" unitRef="iso4217-usd">6313000</us-gaap:ShareBasedCompensation>
  <us-gaap:ShareBasedCompensation contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145074" unitRef="iso4217-usd">4909000</us-gaap:ShareBasedCompensation>
  <us-gaap:ShareBasedCompensation contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145075" unitRef="iso4217-usd">3710000</us-gaap:ShareBasedCompensation>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="d_2020-02-01_2021-01-31_AwardTypeAxis-EmployeeStockOptionMember" id="c71146153">P5Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="d_2020-02-01_2021-01-31_AwardTypeAxis-EmployeeStockOptionMember_RangeAxis-MinimumMember_TitleOfIndividualAxis-DirectorsAndOfficersMember" id="c71146155">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="d_2020-02-01_2021-01-31_AwardTypeAxis-EmployeeStockOptionMember_RangeAxis-MaximumMember_TitleOfIndividualAxis-DirectorsAndOfficersMember" id="c71146156">P5Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="d_2020-02-01_2021-01-31_AwardTypeAxis-PerformanceSharesMember" id="c71146157">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="d_2020-02-01_2021-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" id="c71146160">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod contextRef="d_2019-02-01_2020-01-31_AwardTypeAxis-PerformanceSharesMember" decimals="INF" id="c71145736" unitRef="xbrli-shares">53729</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod contextRef="d_2020-02-01_2021-01-31_AwardTypeAxis-PerformanceSharesMember" decimals="INF" id="c71145748" unitRef="xbrli-shares">85334</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod contextRef="d_2019-02-01_2020-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c71145772" unitRef="xbrli-shares">37611</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod contextRef="d_2020-02-01_2021-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c71145780" unitRef="xbrli-shares">57518</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue contextRef="d_2019-02-01_2020-01-31_AwardTypeAxis-PerformanceSharesMember" decimals="INF" id="c71145737" unitRef="iso4217-usd-per-xbrli-shares">53.65</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue contextRef="d_2020-02-01_2021-01-31_AwardTypeAxis-PerformanceSharesMember" decimals="INF" id="c71145749" unitRef="iso4217-usd-per-xbrli-shares">54.24</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue contextRef="d_2019-02-01_2020-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c71145773" unitRef="iso4217-usd-per-xbrli-shares">38.04</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue contextRef="d_2020-02-01_2021-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c71145781" unitRef="iso4217-usd-per-xbrli-shares">43.25</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue contextRef="i_2019-01-31_AwardTypeAxis-PerformanceSharesMember" decimals="INF" id="c71145733" unitRef="iso4217-usd-per-xbrli-shares">18.02</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue contextRef="i_2020-01-31_AwardTypeAxis-PerformanceSharesMember" decimals="INF" id="c71145745" unitRef="iso4217-usd-per-xbrli-shares">21.19</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue contextRef="i_2021-01-31_AwardTypeAxis-PerformanceSharesMember" decimals="INF" id="c71145757" unitRef="iso4217-usd-per-xbrli-shares">25.17</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue contextRef="i_2019-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c71145769" unitRef="iso4217-usd-per-xbrli-shares">14.42</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue contextRef="i_2020-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c71145777" unitRef="iso4217-usd-per-xbrli-shares">16.57</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue contextRef="i_2021-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c71145785" unitRef="iso4217-usd-per-xbrli-shares">19.98</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms contextRef="d_2018-02-01_2019-01-31_AwardTypeAxis-PerformanceSharesMember" id="c71145734">P5Y182D</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms contextRef="d_2019-02-01_2020-01-31_AwardTypeAxis-PerformanceSharesMember" id="c71145746">P5Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms contextRef="d_2020-02-01_2021-01-31_AwardTypeAxis-PerformanceSharesMember" id="c71145758">P4Y255D</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms contextRef="d_2018-02-01_2019-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" id="c71145770">P5Y219D</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms contextRef="d_2019-02-01_2020-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" id="c71145778">P5Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms contextRef="d_2020-02-01_2021-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" id="c71145786">P4Y255D</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue contextRef="d_2020-02-01_2021-01-31_AwardTypeAxis-PerformanceSharesMember" decimals="-3" id="c71146564" unitRef="iso4217-usd">1200000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue contextRef="d_2020-02-01_2021-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="-3" id="c71146568" unitRef="iso4217-usd">1400000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate contextRef="d_2020-02-01_2021-01-31" id="c71145628" unitRef="xbrli-pure" xs:nil="true"/>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate contextRef="d_2019-02-01_2020-01-31" id="c71145629" unitRef="xbrli-pure" xs:nil="true"/>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate contextRef="d_2018-02-01_2019-01-31" id="c71145630" unitRef="xbrli-pure" xs:nil="true"/>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate contextRef="d_2020-02-01_2021-01-31" decimals="3" id="c71145631" unitRef="xbrli-pure">0.264</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate contextRef="d_2019-02-01_2020-01-31" decimals="3" id="c71145632" unitRef="xbrli-pure">0.235</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate contextRef="d_2018-02-01_2019-01-31" decimals="3" id="c71145633" unitRef="xbrli-pure">0.236</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate contextRef="d_2020-02-01_2021-01-31" decimals="3" id="c71145634" unitRef="xbrli-pure">0.007</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate contextRef="d_2019-02-01_2020-01-31" decimals="3" id="c71145635" unitRef="xbrli-pure">0.014</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate contextRef="d_2018-02-01_2019-01-31" decimals="3" id="c71145636" unitRef="xbrli-pure">0.02</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber contextRef="i_2019-01-31_AwardTypeAxis-PerformanceSharesMember" decimals="INF" id="c71145732" unitRef="xbrli-shares">530383</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber contextRef="i_2020-01-31_AwardTypeAxis-PerformanceSharesMember" decimals="INF" id="c71145744" unitRef="xbrli-shares">629874</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber contextRef="i_2021-01-31_AwardTypeAxis-PerformanceSharesMember" decimals="INF" id="c71145756" unitRef="xbrli-shares">755873</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber contextRef="i_2019-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c71145768" unitRef="xbrli-shares">337066</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber contextRef="i_2020-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c71145776" unitRef="xbrli-shares">374677</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber contextRef="i_2021-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c71145784" unitRef="xbrli-shares">432195</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant contextRef="i_2021-01-31_AwardTypeAxis-EmployeeStockOptionMember_PlanNameAxis-ShareholderapprovedStockOptionPlanMember" decimals="INF" id="c71146541" unitRef="xbrli-shares">3303444</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber contextRef="i_2021-01-31" decimals="INF" id="c71145680" unitRef="xbrli-shares">646065</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice contextRef="i_2021-01-31" decimals="INF" id="c71145681" unitRef="iso4217-usd-per-xbrli-shares">29.52</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71146558" unitRef="iso4217-usd">10800000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71146559" unitRef="iso4217-usd">2000000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71146560" unitRef="iso4217-usd">800000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod contextRef="d_2019-02-01_2020-01-31" decimals="INF" id="c71145652" unitRef="xbrli-shares">23719</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod contextRef="d_2020-02-01_2021-01-31" decimals="INF" id="c71145668" unitRef="xbrli-shares">23619</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross contextRef="d_2020-02-01_2021-01-31" decimals="INF" id="c71146548" unitRef="xbrli-shares">381859</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross contextRef="d_2019-02-01_2020-01-31" decimals="INF" id="c71146549" unitRef="xbrli-shares">367173</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross contextRef="d_2018-02-01_2019-01-31" decimals="INF" id="c71146550" unitRef="xbrli-shares">272144</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross contextRef="d_2019-02-01_2020-01-31_PlanNameAxis-ShareholderapprovedStockOptionPlanMember" decimals="INF" id="c71145716" unitRef="xbrli-shares">367173</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross contextRef="d_2020-02-01_2021-01-31_PlanNameAxis-ShareholderapprovedStockOptionPlanMember" decimals="INF" id="c71145724" unitRef="xbrli-shares">381859</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue contextRef="d_2020-02-01_2021-01-31" decimals="INF" id="c71146553" unitRef="iso4217-usd-per-xbrli-shares">10.19</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue contextRef="d_2019-02-01_2020-01-31" decimals="INF" id="c71146554" unitRef="iso4217-usd-per-xbrli-shares">8.99</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue contextRef="d_2018-02-01_2019-01-31" decimals="INF" id="c71146555" unitRef="iso4217-usd-per-xbrli-shares">7.10</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue contextRef="d_2019-02-01_2020-01-31_PlanNameAxis-ShareholderapprovedStockOptionPlanMember" decimals="INF" id="c71145717" unitRef="iso4217-usd-per-xbrli-shares">8.99</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue contextRef="d_2020-02-01_2021-01-31_PlanNameAxis-ShareholderapprovedStockOptionPlanMember" decimals="INF" id="c71145725" unitRef="iso4217-usd-per-xbrli-shares">10.19</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue contextRef="i_2019-01-31" decimals="-5" id="c71145643" unitRef="iso4217-usd">8700000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue contextRef="i_2020-01-31" decimals="-5" id="c71145659" unitRef="iso4217-usd">20200000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue contextRef="i_2021-01-31" decimals="-5" id="c71145675" unitRef="iso4217-usd">28100000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="i_2021-01-31_PlanNameAxis-ShareholderapprovedStockOptionPlanMember" decimals="INF" id="c71146540" unitRef="xbrli-shares">1147720</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="i_2019-01-31" decimals="INF" id="c71145640" unitRef="xbrli-shares">879338</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="i_2020-01-31" decimals="INF" id="c71145656" unitRef="xbrli-shares">1127822</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="i_2021-01-31" decimals="INF" id="c71145672" unitRef="xbrli-shares">1147720</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice contextRef="i_2019-01-31" decimals="INF" id="c71145641" unitRef="iso4217-usd-per-xbrli-shares">21.41</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice contextRef="i_2020-01-31" decimals="INF" id="c71145657" unitRef="iso4217-usd-per-xbrli-shares">26.82</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice contextRef="i_2021-01-31" decimals="INF" id="c71145673" unitRef="iso4217-usd-per-xbrli-shares">33.77</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber contextRef="i_2021-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c71145788" unitRef="xbrli-shares">432195</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue contextRef="i_2021-01-31" decimals="-5" id="c71145679" unitRef="iso4217-usd">28100000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue contextRef="i_2021-01-31_AwardTypeAxis-PerformanceSharesMember" decimals="-5" id="c71145763" unitRef="iso4217-usd">44000000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue contextRef="i_2021-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="-5" id="c71145791" unitRef="iso4217-usd">25200000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber contextRef="i_2021-01-31" decimals="INF" id="c71145676" unitRef="xbrli-shares">1147720</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber contextRef="i_2021-01-31_AwardTypeAxis-PerformanceSharesMember" decimals="INF" id="c71145760" unitRef="xbrli-shares">755873</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice contextRef="i_2021-01-31" decimals="INF" id="c71145677" unitRef="iso4217-usd-per-xbrli-shares">33.77</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice contextRef="i_2021-01-31_AwardTypeAxis-PerformanceSharesMember" decimals="INF" id="c71145761" unitRef="iso4217-usd-per-xbrli-shares">25.17</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice contextRef="i_2021-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c71145789" unitRef="iso4217-usd-per-xbrli-shares">19.98</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod contextRef="d_2019-02-01_2020-01-31_AwardTypeAxis-PerformanceSharesMember" decimals="INF" id="c71145740" unitRef="xbrli-shares">45762</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod contextRef="d_2020-02-01_2021-01-31_AwardTypeAxis-PerformanceSharesMember" decimals="INF" id="c71145752" unitRef="xbrli-shares">40665</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod>
  <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice contextRef="d_2019-02-01_2020-01-31" decimals="INF" id="c71145649" unitRef="iso4217-usd-per-xbrli-shares">15.62</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
  <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice contextRef="d_2020-02-01_2021-01-31" decimals="INF" id="c71145665" unitRef="iso4217-usd-per-xbrli-shares">18.43</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
  <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice contextRef="d_2019-02-01_2020-01-31" decimals="INF" id="c71145653" unitRef="iso4217-usd-per-xbrli-shares">31.93</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice>
  <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice contextRef="d_2020-02-01_2021-01-31" decimals="INF" id="c71145669" unitRef="iso4217-usd-per-xbrli-shares">33.88</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice>
  <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice contextRef="d_2019-02-01_2020-01-31" decimals="INF" id="c71145645" unitRef="iso4217-usd-per-xbrli-shares">38.06</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
  <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice contextRef="d_2020-02-01_2021-01-31" decimals="INF" id="c71145661" unitRef="iso4217-usd-per-xbrli-shares">41.51</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
  <us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy contextRef="d_2020-02-01_2021-01-31" id="c71152872">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Stock-based compensation plans&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Stock Options&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Employee stock options generally vest over a &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;five&lt;/div&gt;-year period starting from the grant date and expire &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;seven&lt;/div&gt; years from the grant date. Non-employee directors' and officers' stock options generally have quarterly vesting over a &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt; to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;five&lt;/div&gt;-year period. We issue new shares from treasury upon the exercise of a stock option. Forfeitures are accounted for as they occur.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Performance &amp;amp; Restricted Share Units&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 (&amp;#x201c;PSUs&amp;#x201d;) and restricted share units (&amp;#x201c;RSUs&amp;#x201d;).&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;PSUs vest at the end of a &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt;-year performance period. The ultimate number of PSUs that vest is based on the total shareholder return (&amp;#x201c;TSR&amp;#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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;five&lt;/div&gt; trading 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;ten&lt;/div&gt; years from the grant date. New shares are issued from treasury upon the redemption of a PSU.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 12 --&gt; &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;RSUs vest annually over a &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt;-year period starting from the grant date and expire &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;ten&lt;/div&gt; years from the grant date. We issue new shares from treasury upon the redemption of an RSU.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Deferred Share Unit Plan&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Our board of directors adopted a deferred share unit plan effective as of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; June 28, 2004, &lt;/div&gt;pursuant to which non-employee directors are eligible to receive grants of deferred share units (&amp;#x201c;DSUs&amp;#x201d;), each of which has an initial value equal to the weighted-average closing price of our common shares for the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;five&lt;/div&gt; trading days preceding the grant date. The plan allows each director to choose to receive, in the form of DSUs, all, &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;none&lt;/div&gt; or a percentage of the eligible director'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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;50%&lt;/div&gt; 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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Cash-Settled Restricted Share Unit Plan&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Our board of directors adopted a cash-settled restricted share unit plan effective as of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; May 23, 2007, &lt;/div&gt;pursuant to which certain of our employees and non-employee directors are eligible to receive grants of cash-settled restricted share units (&amp;#x201c;CRSUs&amp;#x201d;), each of which has an initial value equal to the weighted-average closing price of our common shares for the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;five&lt;/div&gt; trading days preceding the date of the grant. The CRSUs generally vest based on continued employment and have annual vesting over &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt; to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;five&lt;/div&gt;-year periods. Vested units are settled in cash based on our common share price when conversion takes place, which is within &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;30&lt;/div&gt; days following a vesting date and in any event prior to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; December 31&lt;/div&gt;&lt;div style="display: inline; bottom:.33em; font-size: 82%; position: relative; vertical-align: baseline;"&gt;st&lt;/div&gt; of the calendar 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;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy>
  <us-gaap:ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-22">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Number of PSUs Outstanding&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Weighted-&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Average Granted Date Fair Value&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Weighted- Average Remaining Contractual Life (years)&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Aggregate Intrinsic&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Value&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(in millions)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 48%"&gt;Balance at January 31, 2019&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;530,383&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;18.02&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5.5&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;16.6&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt"&gt;Granted&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;53,729&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;$&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;53.65&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt"&gt;Performance units issued&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;45,762&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;23.24&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td&gt;Balance at January 31, 2020&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;629,874&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;$&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;21.19&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5.0&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;$&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;28.2&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-left: 10pt"&gt;Granted&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;85,334&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;54.24&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt"&gt;Performance units issued&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;40,665&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;29.08&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-bottom: 1pt"&gt;Balance at January 31, 2021&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;755,873&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;25.17&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4.7&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;44.0&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left; padding-bottom: 1pt"&gt;Vested or expected to vest at January 31, 2021&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;755,873&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;25.17&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4.7&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;44.0&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-bottom: 1pt"&gt;Exercisable at January 31, 2021&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;562,459&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;17.21&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3.5&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;32.8&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock>
  <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit contextRef="d_2020-02-01_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range1Member" decimals="INF" id="c71165653" unitRef="iso4217-usd-per-xbrli-shares">11.32</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit>
  <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit contextRef="d_2020-02-01_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range2Member" decimals="INF" id="c71165660" unitRef="iso4217-usd-per-xbrli-shares">25.65</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit>
  <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit contextRef="d_2020-02-01_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range3Member" decimals="INF" id="c71165667" unitRef="iso4217-usd-per-xbrli-shares">37.66</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit>
  <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit contextRef="d_2020-02-01_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range4Member" decimals="INF" id="c71165674" unitRef="iso4217-usd-per-xbrli-shares">49.04</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit>
  <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions contextRef="i_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range1Member" decimals="INF" id="c71165659" unitRef="xbrli-shares">203459</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions>
  <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions contextRef="i_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range2Member" decimals="INF" id="c71165666" unitRef="xbrli-shares">186707</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions>
  <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions contextRef="i_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range3Member" decimals="INF" id="c71165673" unitRef="xbrli-shares">255899</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions>
  <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions contextRef="i_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range4Member" id="c71165680" unitRef="xbrli-shares" xs:nil="true"/>
  <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions contextRef="i_2021-01-31" decimals="INF" id="c71165687" unitRef="xbrli-shares">646065</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions>
  <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions contextRef="i_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range1Member" decimals="INF" id="c71165656" unitRef="xbrli-shares">220559</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
  <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions contextRef="i_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range2Member" decimals="INF" id="c71165663" unitRef="xbrli-shares">217381</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
  <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions contextRef="i_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range3Member" decimals="INF" id="c71165670" unitRef="xbrli-shares">636869</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
  <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions contextRef="i_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range4Member" decimals="INF" id="c71165677" unitRef="xbrli-shares">72911</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
  <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions contextRef="i_2021-01-31" decimals="INF" id="c71165684" unitRef="xbrli-shares">1147720</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions>
  <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit contextRef="d_2020-02-01_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range1Member" decimals="INF" id="c71165654" unitRef="iso4217-usd-per-xbrli-shares">22.34</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit>
  <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit contextRef="d_2020-02-01_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range2Member" decimals="INF" id="c71165661" unitRef="iso4217-usd-per-xbrli-shares">27.23</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit>
  <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit contextRef="d_2020-02-01_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range3Member" decimals="INF" id="c71165668" unitRef="iso4217-usd-per-xbrli-shares">39.30</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit>
  <us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit contextRef="d_2020-02-01_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range4Member" decimals="INF" id="c71165675" unitRef="iso4217-usd-per-xbrli-shares">55.04</us-gaap:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding contextRef="i_2019-01-31_AwardTypeAxis-PerformanceSharesMember" decimals="-5" id="c71145735" unitRef="iso4217-usd">16600000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding contextRef="i_2020-01-31_AwardTypeAxis-PerformanceSharesMember" decimals="-5" id="c71145747" unitRef="iso4217-usd">28200000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding contextRef="i_2021-01-31_AwardTypeAxis-PerformanceSharesMember" decimals="-5" id="c71145759" unitRef="iso4217-usd">44000000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding contextRef="i_2019-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="-5" id="c71145771" unitRef="iso4217-usd">10600000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding contextRef="i_2020-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="-5" id="c71145779" unitRef="iso4217-usd">16800000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding contextRef="i_2021-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="-5" id="c71145787" unitRef="iso4217-usd">25200000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod contextRef="d_2020-02-01_2021-01-31_AwardTypeAxis-EmployeeStockOptionMember" id="c71146154">P7Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod contextRef="d_2020-02-01_2021-01-31_AwardTypeAxis-PerformanceSharesMember" id="c71146159">P10Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod contextRef="d_2020-02-01_2021-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" id="c71146161">P10Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="d_2020-02-01_2021-01-31" id="c71145637">P5Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="d_2019-02-01_2020-01-31" id="c71145638">P5Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="d_2018-02-01_2019-01-31" id="c71145639">P5Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1 contextRef="i_2021-01-31" decimals="-5" id="c71145683" unitRef="iso4217-usd">18600000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1 contextRef="d_2020-02-01_2021-01-31" id="c71145682">P4Y109D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares contextRef="i_2019-01-31_PlanNameAxis-ShareholderapprovedStockOptionPlanMember" decimals="INF" id="c71145714" unitRef="xbrli-shares">325218</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares contextRef="i_2020-01-31_PlanNameAxis-ShareholderapprovedStockOptionPlanMember" decimals="INF" id="c71145722" unitRef="xbrli-shares">409653</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares contextRef="i_2021-01-31_PlanNameAxis-ShareholderapprovedStockOptionPlanMember" decimals="INF" id="c71145730" unitRef="xbrli-shares">501655</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares contextRef="d_2019-02-01_2020-01-31_PlanNameAxis-ShareholderapprovedStockOptionPlanMember" decimals="INF" id="c71145720" unitRef="xbrli-shares">23469</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares contextRef="d_2020-02-01_2021-01-31_PlanNameAxis-ShareholderapprovedStockOptionPlanMember" decimals="INF" id="c71145728" unitRef="xbrli-shares">23619</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue contextRef="d_2019-02-01_2020-01-31_PlanNameAxis-ShareholderapprovedStockOptionPlanMember" decimals="INF" id="c71145721" unitRef="iso4217-usd-per-xbrli-shares">7.69</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue contextRef="d_2020-02-01_2021-01-31_PlanNameAxis-ShareholderapprovedStockOptionPlanMember" decimals="INF" id="c71145729" unitRef="iso4217-usd-per-xbrli-shares">4.87</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue contextRef="i_2019-01-31_PlanNameAxis-ShareholderapprovedStockOptionPlanMember" decimals="INF" id="c71145715" unitRef="iso4217-usd-per-xbrli-shares">6.18</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue contextRef="i_2020-01-31_PlanNameAxis-ShareholderapprovedStockOptionPlanMember" decimals="INF" id="c71145723" unitRef="iso4217-usd-per-xbrli-shares">8.03</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue contextRef="i_2021-01-31_PlanNameAxis-ShareholderapprovedStockOptionPlanMember" decimals="INF" id="c71145731" unitRef="iso4217-usd-per-xbrli-shares">9.52</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2 contextRef="d_2018-02-01_2019-01-31" id="c71145642">P4Y255D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2 contextRef="d_2019-02-01_2020-01-31" id="c71145658">P4Y219D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2 contextRef="d_2020-02-01_2021-01-31" id="c71145674">P4Y328D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1 contextRef="d_2020-02-01_2021-01-31" id="c71145678">P4Y328D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1 contextRef="d_2020-02-01_2021-01-31_AwardTypeAxis-PerformanceSharesMember" id="c71145762">P4Y255D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1 contextRef="d_2020-02-01_2021-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" id="c71145790">P4Y255D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1 contextRef="d_2020-02-01_2021-01-31_AwardTypeAxis-EmployeeStockOptionMember" decimals="-3" id="c71146545" unitRef="iso4217-usd">2300000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares contextRef="d_2019-02-01_2020-01-31_PlanNameAxis-ShareholderapprovedStockOptionPlanMember" decimals="INF" id="c71145718" unitRef="xbrli-shares">259269</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares contextRef="d_2020-02-01_2021-01-31_PlanNameAxis-ShareholderapprovedStockOptionPlanMember" decimals="INF" id="c71145726" unitRef="xbrli-shares">266238</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue contextRef="d_2019-02-01_2020-01-31_PlanNameAxis-ShareholderapprovedStockOptionPlanMember" decimals="INF" id="c71145719" unitRef="iso4217-usd-per-xbrli-shares">6.96</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue contextRef="d_2020-02-01_2021-01-31_PlanNameAxis-ShareholderapprovedStockOptionPlanMember" decimals="INF" id="c71145727" unitRef="iso4217-usd-per-xbrli-shares">8.19</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue>
  <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1 contextRef="i_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range1Member" decimals="INF" id="c71165658" unitRef="iso4217-usd-per-xbrli-shares">21.01</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1>
  <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1 contextRef="i_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range2Member" decimals="INF" id="c71165665" unitRef="iso4217-usd-per-xbrli-shares">27.23</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1>
  <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1 contextRef="i_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range3Member" decimals="INF" id="c71165672" unitRef="iso4217-usd-per-xbrli-shares">37.96</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1>
  <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1 contextRef="i_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range4Member" id="c71165679" unitRef="iso4217-usd-per-xbrli-shares" xs:nil="true"/>
  <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1 contextRef="i_2021-01-31" decimals="INF" id="c71165686" unitRef="iso4217-usd-per-xbrli-shares">29.52</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1>
  <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 contextRef="i_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range1Member" decimals="INF" id="c71165655" unitRef="iso4217-usd-per-xbrli-shares">21.06</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
  <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 contextRef="i_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range2Member" decimals="INF" id="c71165662" unitRef="iso4217-usd-per-xbrli-shares">27.22</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
  <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 contextRef="i_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range3Member" decimals="INF" id="c71165669" unitRef="iso4217-usd-per-xbrli-shares">38.09</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
  <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 contextRef="i_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range4Member" decimals="INF" id="c71165676" unitRef="iso4217-usd-per-xbrli-shares">54.11</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
  <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 contextRef="i_2021-01-31" decimals="INF" id="c71165683" unitRef="iso4217-usd-per-xbrli-shares">33.77</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1>
  <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2 contextRef="d_2020-02-01_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range1Member" id="c71165657">P2Y328D</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
  <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2 contextRef="d_2020-02-01_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range2Member" id="c71165664">P4Y73D</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
  <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2 contextRef="d_2020-02-01_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range3Member" id="c71165671">P5Y255D</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
  <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2 contextRef="d_2020-02-01_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range4Member" id="c71165678">P6Y255D</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
  <us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2 contextRef="d_2020-02-01_2021-01-31" id="c71165685">P4Y328D</us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2>
  <us-gaap:SharesIssuedPricePerShare contextRef="i_2019-06-10" decimals="INF" id="c71146494" unitRef="iso4217-usd-per-xbrli-shares">35.50</us-gaap:SharesIssuedPricePerShare>
  <us-gaap:ShortTermLeaseCost contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145552" unitRef="iso4217-usd">502000</us-gaap:ShortTermLeaseCost>
  <us-gaap:ShortTermLeaseCost contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145553" unitRef="iso4217-usd">866000</us-gaap:ShortTermLeaseCost>
  <us-gaap:SignificantAccountingPoliciesTextBlock contextRef="d_2020-02-01_2021-01-31" id="s1792190">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Note &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2&lt;/div&gt; &amp;#x2013;Basis of Presentation&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;The accompanying consolidated financial statements are presented in United States (&amp;#x201c;US&amp;#x201d;) dollars and are prepared in accordance with generally accepted accounting principles in the US (&amp;#x201c;GAAP&amp;#x201d;) and the rules and regulations of the Canadian Securities Administrators and the US Securities and Exchange Commission (&amp;#x201c;SEC&amp;#x201d;) for the preparation of consolidated financial statements.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;The world continues to experience a global pandemic related to the spread of the COVID-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;19&lt;/div&gt; virus (the &amp;#x201c;Pandemic&amp;#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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; may &lt;/div&gt;be impacted by the Pandemic include, but are &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; limited to; revenue recognition, impairment of goodwill and intangible assets and provisions for credit losses.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Our fiscal year commences on &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 1&lt;/div&gt;&lt;div style="display: inline; bottom:.33em; font-size: 82%; position: relative; vertical-align: baseline;"&gt;st&lt;/div&gt; of each year and ends on &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31&lt;/div&gt;&lt;div style="display: inline; bottom:.33em; font-size: 82%; position: relative; vertical-align: baseline;"&gt;st&lt;/div&gt; of the following year. Our fiscal year, which ends on &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021, &lt;/div&gt;is referred to as the &amp;#x201c;current fiscal year&amp;#x201d;, &amp;#x201c;fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2021&amp;#x201d;,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;#x201c;2021&amp;#x201d;&lt;/div&gt; or using similar words. Our previous fiscal year, which ended on &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2020, &lt;/div&gt;is referred to as the &amp;#x201c;previous fiscal year&amp;#x201d;, &amp;#x201c;fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&amp;#x201d;,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;#x201c;2020&amp;#x201d;&lt;/div&gt; or using similar words. Other fiscal years are referenced by the applicable year during which the fiscal year ends. For example, &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&amp;#x201c;2022&amp;#x201d;&lt;/div&gt; refers to the annual period ending &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2022 &lt;/div&gt;and the &amp;#x201c;fourth quarter of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2022&amp;#x201d;&lt;/div&gt; refers to the quarter ending &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2022.&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Basis of consolidation&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;The consolidated financial statements include the financial statements of Descartes and our wholly-owned subsidiaries. We do &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; have any variable interests in variable interest entities. All intercompany accounts and transactions have been eliminated during consolidation.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 6 --&gt;   &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Foreign currency translation&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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' 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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 year ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2021, &lt;/div&gt;foreign currency re-measurement loss of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.8&lt;/div&gt; million was included in net income (&lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2020 &amp;#x2013; &lt;/div&gt;loss of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.6&lt;/div&gt; million; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 31, 2019 &amp;#x2013; &lt;/div&gt;loss of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.4&lt;/div&gt; million).&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Use of estimates&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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's best knowledge of current events, actual results &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; may &lt;/div&gt;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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; readily apparent from other sources.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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'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 (&amp;#x201c;SSP&amp;#x201d;) of performance obligations in contracts with customers.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Cash&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Cash included highly liquid short-term deposits with original maturities of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt; months or less.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Financial instruments&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Fair value of financial instruments&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;The carrying amounts of the Company's cash, accounts receivable (net), accounts payable, accrued liabilities and income taxes payable approximate their fair value due to their short maturities.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 7 --&gt;   &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Derivative instruments&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;815&lt;/div&gt; &amp;#x201c;Derivatives and Hedging&amp;#x201d; (Topic &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;815&lt;/div&gt;), 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; designate our derivative instruments as hedges and as such the changes in our derivative financial instruments' 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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Foreign exchange risk&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; may &lt;/div&gt;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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Interest rate risk&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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's Acceptance (BA); or iii) LIBOR. We are exposed to interest rate fluctuations to the extent that we borrow on our credit facility.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Credit risk&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;We do &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; use any type of speculative financial instruments, including but &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; limited to foreign exchange contracts, futures, swaps and option agreements, to manage our foreign exchange or interest rate risks. In addition, we do &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; hold or issue financial instruments for trading purposes.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Equity risk&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; hold derivatives for speculative purposes.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Provision for Credit Losses&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Inventory&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;no&lt;/div&gt; longer able to sell inventories above cost or at all, we write down inventory to market or excess inventory is written off.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 8 --&gt;   &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Impairment of long-lived assets&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; may &lt;/div&gt;be impairment. Circumstances which could trigger a review include, but are &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; 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. &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;No&lt;/div&gt; impairment of long-lived assets has been identified or recorded in our consolidated statements of operations for any of the fiscal years presented.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&lt;div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;Goodwill and intangible assets&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; subject to amortization.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;We test for impairment of goodwill at least annually on &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; October 31&lt;/div&gt;&lt;div style="display: inline; bottom:.33em; font-size: 82%; position: relative; vertical-align: baseline;"&gt;st&lt;/div&gt; of each year and at any other time if any event occurs or circumstances change that would more likely than &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; reduce our fair value below our reporting unit'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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;third&lt;/div&gt; quarter of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2021&lt;/div&gt; and concluded that it was more likely than &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; that the fair value of the goodwill was greater than the carrying value. As a result, &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;no&lt;/div&gt; impairment of goodwill was recorded in fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2021&lt;/div&gt; (&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;no&lt;/div&gt;&lt;/div&gt; impairments were recorded for fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&lt;/div&gt; or fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt;).&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; 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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Amortization of our intangible assets is generally recorded at the following rates:&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0" align="center"&gt;    &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="width: 50%; text-align: left"&gt;Customer agreements and relationships&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 49%; text-align: left"&gt;Straight-line over &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt; to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;twenty&lt;/div&gt; years&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left"&gt;Existing technologies&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;Straight-line over &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;two&lt;/div&gt; to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;twelve&lt;/div&gt; years&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left"&gt;Trade names&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;Straight-line over &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;one&lt;/div&gt; to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;fifteen&lt;/div&gt; years&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left"&gt;Non-compete covenants&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;Straight-line over &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;two&lt;/div&gt; to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;twelve&lt;/div&gt; years&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify; text-indent: 0.5in"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify; text-indent: 0.5in"&gt;&lt;/div&gt; &lt;div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&lt;div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;Property and equipment&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Property and equipment is recorded at cost.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Effective &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 1, 2020, &lt;/div&gt;we changed our accounting method for property &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' 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; have a material impact on our results of operations.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Depreciation of our property and equipment is generally recorded at the following rates:&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0" align="center"&gt;    &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="width: 50%; text-align: left"&gt;Computer equipment and software&lt;/td&gt;  &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="width: 49%; text-align: left"&gt;Straight-line over &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1&lt;/div&gt; to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;13&lt;/div&gt; years&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left"&gt;Furniture and fixtures&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;Straight-line over &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3&lt;/div&gt; to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;14&lt;/div&gt; years&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left"&gt;Leasehold improvements&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;Straight-line over lesser of useful life or term of lease&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt;  &lt;td style="text-align: left"&gt;Equipment installed with customers&lt;/td&gt;  &lt;td&gt;&amp;nbsp;&lt;/td&gt;  &lt;td style="text-align: left"&gt;Straight-line over &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3&lt;/div&gt; years&lt;/td&gt;  &lt;/tr&gt;    &lt;/table&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 9 --&gt;   &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;Fully depreciated property and equipment are removed from the balance sheet when they are &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;no&lt;/div&gt; longer in use.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Leases&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;We recognize a right-of-use (&amp;#x201c;ROU&amp;#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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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's incremental borrowing rate. As most of our leases do &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; 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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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'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 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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;We have elected to apply the practical expedient &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; to recognize ROU assets and lease liabilities for short-term leases that have a lease term of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12&lt;/div&gt; months or less. The lease payments associated with these leases is recognized as an expense on a straight-line basis over the lease term.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Revenue recognition&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 10 --&gt;   &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;License&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Services&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 monthly basis based on the customer usage for that period.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Professional Services &amp;amp; Other&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; may &lt;/div&gt;require judgment. Judgment is also needed in assessing the ability to collect the corresponding receivables.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; 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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Costs to obtain a contract with a customer&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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;div style="display: inline; font-style: italic; font: inherit;"&gt;four&lt;/div&gt; to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;six&lt;/div&gt; 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;one&lt;/div&gt; year or less.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 11 --&gt;   &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Contract assets and liabilities&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; color: black"&gt;The payment terms and conditions in our customer contracts &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; may &lt;/div&gt;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 when or as 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. &lt;/div&gt;Contract liabilities primarily relate to the advance consideration received from customers and is presented as deferred revenue. &lt;div style="display: inline; color: black"&gt;Deferred revenue results from customer payments in advance of our satisfaction of the associated performance obligation(s) 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;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;/div&gt; &lt;div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&lt;div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Research and development costs&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;To date, we have &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; been significant.&lt;/div&gt; &lt;div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&lt;div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Stock-based compensation plans&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Stock Options&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Employee stock options generally vest over a &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;five&lt;/div&gt;-year period starting from the grant date and expire &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;seven&lt;/div&gt; years from the grant date. Non-employee directors' and officers' stock options generally have quarterly vesting over a &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt; to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;five&lt;/div&gt;-year period. We issue new shares from treasury upon the exercise of a stock option. Forfeitures are accounted for as they occur.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Performance &amp;amp; Restricted Share Units&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 (&amp;#x201c;PSUs&amp;#x201d;) and restricted share units (&amp;#x201c;RSUs&amp;#x201d;).&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;PSUs vest at the end of a &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt;-year performance period. The ultimate number of PSUs that vest is based on the total shareholder return (&amp;#x201c;TSR&amp;#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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;five&lt;/div&gt; trading 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;ten&lt;/div&gt; years from the grant date. New shares are issued from treasury upon the redemption of a PSU.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 12 --&gt;   &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;RSUs vest annually over a &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt;-year period starting from the grant date and expire &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;ten&lt;/div&gt; years from the grant date. We issue new shares from treasury upon the redemption of an RSU.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Deferred Share Unit Plan&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Our board of directors adopted a deferred share unit plan effective as of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; June 28, 2004, &lt;/div&gt;pursuant to which non-employee directors are eligible to receive grants of deferred share units (&amp;#x201c;DSUs&amp;#x201d;), each of which has an initial value equal to the weighted-average closing price of our common shares for the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;five&lt;/div&gt; trading days preceding the grant date. The plan allows each director to choose to receive, in the form of DSUs, all, &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;none&lt;/div&gt; or a percentage of the eligible director'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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;50%&lt;/div&gt; 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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Cash-Settled Restricted Share Unit Plan&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;Our board of directors adopted a cash-settled restricted share unit plan effective as of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; May 23, 2007, &lt;/div&gt;pursuant to which certain of our employees and non-employee directors are eligible to receive grants of cash-settled restricted share units (&amp;#x201c;CRSUs&amp;#x201d;), each of which has an initial value equal to the weighted-average closing price of our common shares for the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;five&lt;/div&gt; trading days preceding the date of the grant. The CRSUs generally vest based on continued employment and have annual vesting over &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt; to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;five&lt;/div&gt;-year periods. Vested units are settled in cash based on our common share price when conversion takes place, which is within &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;30&lt;/div&gt; days following a vesting date and in any event prior to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; December 31&lt;/div&gt;&lt;div style="display: inline; bottom:.33em; font-size: 82%; position: relative; vertical-align: baseline;"&gt;st&lt;/div&gt; of the calendar 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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&lt;div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;Business combinations&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;We apply the provisions of ASC Topic &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;805,&lt;/div&gt; &amp;#x201c;Business Combinations&amp;#x201d; (Topic &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;805&lt;/div&gt;), 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 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.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; may &lt;/div&gt;be up to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;one&lt;/div&gt; year from the acquisition date, we &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; may &lt;/div&gt;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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 13 --&gt;   &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;420,&lt;/div&gt; &amp;#x201c;Exit or Disposal Cost Obligations&amp;#x201d; (Topic &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;420&lt;/div&gt;) and are accounted for separately from the business combination.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;For a given acquisition, we generally identify certain pre-acquisition contingencies as of the acquisition date and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; may &lt;/div&gt;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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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, subsequently, in our results of operations.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; exist at the acquisition date, are recorded in our provision for income taxes in our consolidated statement of operations.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&lt;div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;Income taxes&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; that a deferred tax asset will &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; 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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;We evaluate our uncertain tax positions by using a &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;two&lt;/div&gt;-step approach to recognize and measure uncertain tax positions and provisions for income taxes.&amp;nbsp;The &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;first&lt;/div&gt; step is to evaluate the tax position for recognition by determining if the weight of available evidence indicates it is more likely than &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not,&lt;/div&gt; 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;second&lt;/div&gt; 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; to be realized. The tax position is derecognized when it is &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;no&lt;/div&gt; longer more likely than &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; 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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&lt;div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;Earnings per share&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 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;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 14 --&gt;   &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&lt;div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;Recently adopted accounting pronouncements&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;In &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; May 2014, &lt;/div&gt;the FASB issued Accounting Standards Update &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2014&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;09,&lt;/div&gt; &amp;#x201c;Revenue from Contracts with Customers&amp;#x201d; (&amp;#x201c;ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;606&amp;#x201d;&lt;/div&gt;). ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;606&lt;/div&gt; supersedes the revenue recognition requirements in ASC Topic &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;605,&lt;/div&gt; &amp;#x201c;Revenue Recognition&amp;#x201d; ("ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;605"&lt;/div&gt;) and nearly all other existing revenue recognition guidance under US GAAP. The core principle of ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;606&lt;/div&gt; is to recognize revenues when promised goods or services are transferred to customers in an amount that reflects the consideration that is expected to be received for those goods or services. ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;606&lt;/div&gt; is effective for annual periods, and interim periods within those annual periods, beginning after &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; December 15, 2017, &lt;/div&gt;which is our fiscal year that began on &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 1, 2018 (&lt;/div&gt;fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt;). The Company has adopted ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;606&lt;/div&gt; in the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;first&lt;/div&gt; quarter of fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt; using the cumulative effect method and therefore the comparative information has &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; been restated and continues to be reported under ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;605.&lt;/div&gt; The details of the significant changes and quantitative impact of the changes are set out below.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify; text-indent: 0.5in"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Term-based licenses&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0 0pt 0.5in; text-align: justify"&gt;Under ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;605,&lt;/div&gt; revenue attributable to term-based arrangements was recognized ratably over the term of the arrangement because Vendor Specific Objective Evidence did &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; exist for the undelivered maintenance and support element of the arrangement. Under ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;606,&lt;/div&gt; the Company has deemed the licenses to be distinct from other performance obligations. Revenue allocated to the distinct license based on the SSP is recognized at the time that both the right-to-use the software has commenced for the term and the software has been made available to the customer.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify; text-indent: 0.5in"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Costs to obtain a contract&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0 0pt 0.5in; text-align: justify"&gt;Under the Company's previous accounting policies, the Company generally expensed commission costs paid to employees or &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;third&lt;/div&gt; parties to obtain customer contracts as incurred. Under ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;606,&lt;/div&gt; the Company allocates these incremental commission costs to the various performance obligations to which they relate using the relative selling price allocation for bundled commissions. For performance obligations &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; delivered upfront, the allocated commissions are deferred and amortized over the pattern of transfer of the related performance obligation. If the expected amortization period for all performance obligations in a contract with a customer is &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;one&lt;/div&gt; year or less, the commission fee is expensed when incurred. Capitalized costs to obtain a contract are included in other long-term assets on the consolidated balance sheet.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;The adoption of ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;606&lt;/div&gt; resulted in an increase to contract assets of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.5&lt;/div&gt; million, an increase to other long-term assets of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$4.2&lt;/div&gt; million, an increase to the liability for deferred income taxes of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$1.1&lt;/div&gt; million and a decrease to accumulated deficit of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$3.6&lt;/div&gt; million, as of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 1, 2018.&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;In &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; October 2016, &lt;/div&gt;the FASB issued Accounting Standards Update &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2016&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;16,&lt;/div&gt; &amp;#x201c;Income Taxes (Topic &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;740&lt;/div&gt;): Intra-Entity Transfers of Assets Other Than Inventory&amp;#x201d; (&amp;#x201c;ASU &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2016&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;16&amp;#x201d;&lt;/div&gt;). ASU &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2016&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;16&lt;/div&gt; requires the recognition of the income tax consequences of an intra-entity transfer of an asset other than inventory when the transfer occurs. ASU &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2016&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;16&lt;/div&gt; is effective for annual periods, and interim periods within those annual periods, beginning after &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; December 15, 2017, &lt;/div&gt;which is our fiscal year that began on &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 1, 2018 (&lt;/div&gt;fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt;). The Company adopted this guidance in the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;first&lt;/div&gt; quarter of fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019.&lt;/div&gt; As a result of adoption, the balance of unamortized deferred tax charges was written-off and previously unrecognized deferred income tax assets in certain jurisdictions were recognized. The change was applied on a modified retrospective basis, and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;no&lt;/div&gt; prior periods were restated. Accordingly, we recognized a decrease of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$4.0&lt;/div&gt; million in accumulated deficit as a result of the adoption of this change in accounting policy, as of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 1, 2018.&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;In &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 2016, &lt;/div&gt;the FASB issued Accounting Standards Update &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2016&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;02,&lt;/div&gt; &amp;#x201c;Leases (Topic &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;842&lt;/div&gt;)&amp;#x201d; (&amp;#x201c;ASU &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2016&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;02&amp;#x201d;&lt;/div&gt;) and issued subsequent amendments to the initial guidance during &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2018,&lt;/div&gt; collectively referred to as &amp;#x201c;ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;842&amp;#x201d;.&lt;/div&gt; These updates supersede the lease guidance in ASC Topic &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;840,&lt;/div&gt; &amp;#x201c;Leases&amp;#x201d; and require the recognition of lease assets and lease liabilities by lessees for most leases previously classified as operating leases under ASC Topic &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;840.&lt;/div&gt; Leases will continue to be classified as either operating or finance. ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;842&lt;/div&gt; is effective for annual periods, and interim periods within those annual periods, beginning after &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; December 15, 2018, &lt;/div&gt;which is our fiscal year that began on &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 1, 2019 (&lt;/div&gt;fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&lt;/div&gt;). The Company adopted ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;842&lt;/div&gt; in the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;first&lt;/div&gt; quarter of fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&lt;/div&gt; using the cumulative effect method and therefore the comparative information has &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; been restated and continues to be reported under ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;840.&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 15 --&gt;   &lt;!-- Field: /Page --&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;As permitted under ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;842,&lt;/div&gt; 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; to recognize right-of-use (ROU) assets and lease liabilities for short-term leases that have a lease term of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12&lt;/div&gt; months or less. The adoption of ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;842&lt;/div&gt; resulted in an increase to ROU assets and lease liabilities of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$10.4&lt;/div&gt;&lt;/div&gt; million as of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 1, 2019. &lt;/div&gt;The adoption of ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;842&lt;/div&gt; did &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; have a material impact on either our consolidated statement of operations or our consolidated statement of cash flows.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;In &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; June 2016, &lt;/div&gt;the FASB issued Accounting Standards Update &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2016&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;13,&lt;/div&gt; &amp;#x201c;Financial Instruments &amp;#x2013; Credit Losses (Topic &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;326&lt;/div&gt;): Measurement of Credit Losses on Financial Instruments&amp;#x201d; (&amp;#x201c;ASU &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2016&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;13&amp;#x201d;&lt;/div&gt;) and issued subsequent amendments to the initial guidance during the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt; calendar year, collectively referred to as &amp;#x201c;ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;326&amp;#x201d;.&lt;/div&gt; ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;326&lt;/div&gt; requires the measurement and recognition of expected credit losses for financial assets held at amortized cost. ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;326&lt;/div&gt; 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;326&lt;/div&gt; is effective for annual periods, and interim periods within those annual periods, beginning after &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; December 15, 2019, &lt;/div&gt;which is our fiscal year that began on &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 1, 2020 (&lt;/div&gt;fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2021&lt;/div&gt;).&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;326&lt;/div&gt; as of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 1, 2020 &lt;/div&gt;using the cumulative effect method and therefore the comparative information has &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; been restated. The adoption of ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;326&lt;/div&gt; did &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; have a material impact on our results of operations or disclosures.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;In &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 2017, &lt;/div&gt;the FASB issued Accounting Standards Update &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2017&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;04,&lt;/div&gt; &amp;#x201c;Intangibles &amp;#x2013; Goodwill and Other (Topic &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;350&lt;/div&gt;): Simplifying the Test for Goodwill Impairment&amp;#x201d; (&amp;#x201c;ASU &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2017&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;04&amp;#x201d;&lt;/div&gt;). ASU &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2017&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;04&lt;/div&gt; simplifies how an entity is required to test goodwill for impairment. ASU &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2017&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;04&lt;/div&gt; is effective for annual periods, and interim periods within those annual periods, beginning after &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; December 15, 2019, &lt;/div&gt;which is our fiscal year that began on &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 1, 2020 (&lt;/div&gt;fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2021&lt;/div&gt;). The Company adopted this guidance in the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;first&lt;/div&gt; quarter of fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2021.&lt;/div&gt; The adoption of this guidance did &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; have a material impact on our results of operations or disclosures.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;In &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; August 2018, &lt;/div&gt;the FASB issued Accounting Standards Update &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2018&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;15,&lt;/div&gt; &amp;#x201c;Intangibles &amp;#x2013; Goodwill and Other &amp;#x2013; Internal-Use Software (Subtopic &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;350&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;40&lt;/div&gt;): Customer's Accounting for Implementation Costs Incurred in a Cloud Computing Arrangement That Is a Service Contract&amp;#x201d; (&amp;#x201c;ASU &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2018&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;15&amp;#x201d;&lt;/div&gt;). ASU &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2018&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;15&lt;/div&gt; 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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2018&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;15&lt;/div&gt; is effective for annual periods, and interim periods within those annual periods, beginning after &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; December 15, 2019, &lt;/div&gt;which is our fiscal year that began on &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 1, 2020 (&lt;/div&gt;fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2021&lt;/div&gt;). The Company adopted this guidance in the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;first&lt;/div&gt; quarter of fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2021.&lt;/div&gt; The adoption of this guidance did &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; have a material impact on our results of operations or disclosures.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;Recently issued accounting pronouncements&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;In &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; December 2019, &lt;/div&gt;the FASB issued Accounting Standards Update &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12,&lt;/div&gt; &amp;#x201c;Income Taxes (Topic &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;740&lt;/div&gt;): Simplifying the Accounting for Income Taxes&amp;#x201d; (&amp;#x201c;ASU &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12&amp;#x201d;&lt;/div&gt;). ASU &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12&lt;/div&gt; simplifies how an entity accounts for income taxes. ASU &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12&lt;/div&gt; is effective for annual periods, and interim periods within those annual periods, beginning after &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; December 15, 2020, &lt;/div&gt;which will be our fiscal year beginning &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 1, 2021 (&lt;/div&gt;fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2022&lt;/div&gt;). Early adoption is permitted. The Company will adopt this guidance in the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;first&lt;/div&gt; quarter of fiscal &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2022.&lt;/div&gt; The adoption of this guidance is &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; expected to have a material impact on our results of operations or disclosures.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:SignificantAccountingPoliciesTextBlock>
  <us-gaap:SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit contextRef="i_2021-01-31" decimals="-5" id="c71146620" unitRef="iso4217-usd">1500000</us-gaap:SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit>
  <us-gaap:StockIssuedDuringPeriodSharesNewIssues contextRef="d_2019-06-10_2019-06-10" decimals="INF" id="c71146496" unitRef="xbrli-shares">6900000</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
  <us-gaap:StockIssuedDuringPeriodSharesNewIssues contextRef="d_2020-07-17_2021-01-31_SubsidiarySaleOfStockAxis-The2020BaseShelfProspectusMember" decimals="INF" id="c71146508" unitRef="xbrli-shares">0</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
  <us-gaap:StockIssuedDuringPeriodSharesNewIssues contextRef="d_2020-02-01_2021-01-31" id="c71145581" unitRef="xbrli-shares" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodSharesNewIssues contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145582" unitRef="xbrli-shares">6900000</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
  <us-gaap:StockIssuedDuringPeriodSharesNewIssues contextRef="d_2018-02-01_2019-01-31" id="c71145583" unitRef="xbrli-shares" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="d_2019-02-01_2020-01-31" decimals="INF" id="c71145648" unitRef="xbrli-shares">94970</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="d_2020-02-01_2021-01-31" decimals="INF" id="c71145664" unitRef="xbrli-shares">338342</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodValueAcquisitions contextRef="d_2020-02-01_2021-01-31_StatementEquityComponentsAxis-CommonStockMember" id="c71152781" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueAcquisitions contextRef="d_2019-02-01_2020-01-31_StatementEquityComponentsAxis-CommonStockMember" decimals="-3" id="c71152782" unitRef="iso4217-usd">9045000</us-gaap:StockIssuedDuringPeriodValueAcquisitions>
  <us-gaap:StockIssuedDuringPeriodValueAcquisitions contextRef="d_2018-02-01_2019-01-31_StatementEquityComponentsAxis-CommonStockMember" decimals="-3" id="c71152783" unitRef="iso4217-usd">1536000</us-gaap:StockIssuedDuringPeriodValueAcquisitions>
  <us-gaap:StockIssuedDuringPeriodValueNewIssues contextRef="d_2019-06-10_2019-06-10" decimals="-5" id="c71146498" unitRef="iso4217-usd">245000000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
  <us-gaap:StockIssuedDuringPeriodValueNewIssues contextRef="d_2020-02-01_2021-01-31_StatementEquityComponentsAxis-CommonStockMember" id="c71152778" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueNewIssues contextRef="d_2019-02-01_2020-01-31_StatementEquityComponentsAxis-CommonStockMember" decimals="-3" id="c71152779" unitRef="iso4217-usd">236568000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
  <us-gaap:StockIssuedDuringPeriodValueNewIssues contextRef="d_2018-02-01_2019-01-31_StatementEquityComponentsAxis-CommonStockMember" id="c71152780" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2020-02-01_2021-01-31_StatementEquityComponentsAxis-CommonStockMember" decimals="-3" id="c71152775" unitRef="iso4217-usd">7671000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2019-02-01_2020-01-31_StatementEquityComponentsAxis-CommonStockMember" decimals="-3" id="c71152776" unitRef="iso4217-usd">1788000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2018-02-01_2019-01-31_StatementEquityComponentsAxis-CommonStockMember" decimals="-3" id="c71152777" unitRef="iso4217-usd">681000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2020-02-01_2021-01-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c71152793" unitRef="iso4217-usd">-1480000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2019-02-01_2020-01-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c71152794" unitRef="iso4217-usd">-362000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2018-02-01_2019-01-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c71152795" unitRef="iso4217-usd">-139000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <us-gaap:StockholdersEquity contextRef="i_2021-01-31" decimals="-3" id="c71144917" unitRef="iso4217-usd">911068000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2020-01-31" decimals="-3" id="c71144918" unitRef="iso4217-usd">821709000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2020-01-31_StatementEquityComponentsAxis-CommonStockMember" decimals="-3" id="c71152772" unitRef="iso4217-usd">524154000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2019-01-31_StatementEquityComponentsAxis-CommonStockMember" decimals="-3" id="c71152773" unitRef="iso4217-usd">276753000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2018-01-31_StatementEquityComponentsAxis-CommonStockMember" decimals="-3" id="c71152774" unitRef="iso4217-usd">274536000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2021-01-31_StatementEquityComponentsAxis-CommonStockMember" decimals="-3" id="c71152784" unitRef="iso4217-usd">531825000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2020-01-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c71152787" unitRef="iso4217-usd">459269000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2019-01-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c71152788" unitRef="iso4217-usd">454722000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2018-01-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c71152789" unitRef="iso4217-usd">451151000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2021-01-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c71152796" unitRef="iso4217-usd">464102000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2020-01-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember" decimals="-3" id="c71152799" unitRef="iso4217-usd">-25944000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2019-01-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember" decimals="-3" id="c71152800" unitRef="iso4217-usd">-25201000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2018-01-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember" decimals="-3" id="c71152801" unitRef="iso4217-usd">-15252000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2021-01-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember" decimals="-3" id="c71152805" unitRef="iso4217-usd">-1189000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2020-01-31_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c71152808" unitRef="iso4217-usd">-135770000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2019-01-31_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c71152809" unitRef="iso4217-usd">-172767000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2018-01-31_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c71152810" unitRef="iso4217-usd">-211623000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2021-01-31_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-RetainedEarningsMember" id="c71152814" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockholdersEquity contextRef="i_2020-01-31_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-RetainedEarningsMember" id="c71152815" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockholdersEquity contextRef="i_2019-01-31_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c71152816" unitRef="iso4217-usd">7579000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2021-01-31_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c71152817" unitRef="iso4217-usd">-83670000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2019-01-31" decimals="-3" id="c71152822" unitRef="iso4217-usd">533507000</us-gaap:StockholdersEquity>
  <us-gaap:SubsequentEventsTextBlock contextRef="d_2020-02-01_2021-01-31" id="s1792256">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Note &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;23&lt;/div&gt; &amp;#x2013; Subsequent Event&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;On &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 26, 2021, &lt;/div&gt;Descartes acquired all of the shares of VitaDex Solutions, LLC, doing business as QuestaWeb, a US-based provider of foreign trade zone and customs compliance solutions. The purchase price for the acquisition was approximately &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$36.0&lt;/div&gt; million, net of cash acquired, which was funded from cash on hand. As of the issue date of these consolidated financial statements, the fair value of the acquired assets and liabilities has &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; been determined.&lt;/div&gt;&lt;/div&gt;</us-gaap:SubsequentEventsTextBlock>
  <us-gaap:SummaryOfOperatingLossCarryforwardsTextBlock contextRef="d_2020-02-01_2021-01-31" id="c-29">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="text-align: left; font-style: italic"&gt;Expiry year&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Canada&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;United States&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;EMEA&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Asia Pacific&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;Total&lt;/td&gt; &lt;td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 16%; text-align: left; padding-left: 0pt"&gt;2022&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 14%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 14%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 14%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 14%; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;285&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 13%; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;285&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left; padding-left: 0pt"&gt;2023&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;341&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;50&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;394&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left; padding-left: 0pt"&gt;2024&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;16&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;138&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;67&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;221&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left; padding-left: 0pt"&gt;2025&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;51&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;51&lt;/div&gt;&lt;/td&gt; &lt;td style="font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left; padding-left: 0pt"&gt;2026&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-align: left; padding-left: 0pt"&gt;Thereafter&lt;/td&gt; &lt;td style="padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6,969&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,807&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;47,832&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,434&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;60,042&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-align: left; padding-bottom: 1pt; padding-left: 9pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6,969&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,877&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;48,311&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,836&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;60,993&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:SummaryOfOperatingLossCarryforwardsTextBlock>
  <us-gaap:UnbilledReceivablesCurrent contextRef="i_2021-01-31" decimals="-5" id="c71146413" unitRef="iso4217-usd">300000</us-gaap:UnbilledReceivablesCurrent>
  <us-gaap:UnbilledReceivablesCurrent contextRef="i_2020-01-31" decimals="-5" id="c71146414" unitRef="iso4217-usd">1400000</us-gaap:UnbilledReceivablesCurrent>
  <us-gaap:UndistributedEarningsOfForeignSubsidiaries contextRef="i_2021-01-31" decimals="-5" id="c71146615" unitRef="iso4217-usd">432700000</us-gaap:UndistributedEarningsOfForeignSubsidiaries>
  <us-gaap:UnrecognizedTaxBenefits contextRef="i_2020-01-31" decimals="-3" id="c71145955" unitRef="iso4217-usd">6650000</us-gaap:UnrecognizedTaxBenefits>
  <us-gaap:UnrecognizedTaxBenefits contextRef="i_2019-01-31" decimals="-3" id="c71145956" unitRef="iso4217-usd">7824000</us-gaap:UnrecognizedTaxBenefits>
  <us-gaap:UnrecognizedTaxBenefits contextRef="i_2021-01-31" decimals="-3" id="c71145961" unitRef="iso4217-usd">8393000</us-gaap:UnrecognizedTaxBenefits>
  <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145957" unitRef="iso4217-usd">2502000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
  <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145958" unitRef="iso4217-usd">139000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
  <us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145959" unitRef="iso4217-usd">759000</us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations>
  <us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145960" unitRef="iso4217-usd">1313000</us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations>
  <us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate contextRef="i_2021-01-31" decimals="-5" id="c71146619" unitRef="iso4217-usd">8200000</us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate>
  <us-gaap:UseOfEstimates contextRef="d_2020-02-01_2021-01-31" id="c71152861">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Use of estimates&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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's best knowledge of current events, actual results &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; may &lt;/div&gt;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 &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; readily apparent from other sources.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"&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'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 (&amp;#x201c;SSP&amp;#x201d;) of performance obligations in contracts with customers.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:UseOfEstimates>
  <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145603" unitRef="xbrli-shares">85756000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
  <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145604" unitRef="xbrli-shares">82867000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
  <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145605" unitRef="xbrli-shares">77791000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
  <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="d_2020-02-01_2021-01-31" decimals="-3" id="c71145594" unitRef="xbrli-shares">84360000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
  <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="d_2019-02-01_2020-01-31" decimals="-3" id="c71145595" unitRef="xbrli-shares">81659000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
  <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="d_2018-02-01_2019-01-31" decimals="-3" id="c71145596" unitRef="xbrli-shares">76832000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
  <link:footnoteLink xlink:role="http://www.xbrl.org/2003/role/link" xlink:type="extended"/>
  <xbrli:unit id="xbrli-shares">
    <xbrli:measure>xbrli:shares</xbrli:measure>
  </xbrli:unit>
  <xbrli:unit id="xbrli-pure">
    <xbrli:measure>xbrli:pure</xbrli:measure>
  </xbrli:unit>
  <xbrli:unit id="iso4217-usd">
    <xbrli:measure>iso4217:USD</xbrli:measure>
  </xbrli:unit>
  <xbrli:unit id="iso4217-cad">
    <xbrli:measure>iso4217:CAD</xbrli:measure>
  </xbrli:unit>
  <xbrli:unit id="iso4217-usd-per-xbrli-shares">
    <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:context id="d_2018-02-01_2019-01-31">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis-EmployeeStockOptionMember">
    <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>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis-PSUsAndRSUsMember">
    <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>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis-StockOptionsTreasuryStockMethodMember">
    <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>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_AwardTypeAxis-EmployeeStockOptionMember">
    <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>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_AwardTypeAxis-PerformanceSharesMember">
    <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>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember">
    <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>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-AljexSoftwareIncMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:AljexSoftwareIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-AljexSoftwareIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:AljexSoftwareIncMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-AljexSoftwareIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:AljexSoftwareIncMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-AljexSoftwareIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:AljexSoftwareIncMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-AljexSoftwareIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:AljexSoftwareIncMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-PinPointMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PinPointMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-PinPointMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PinPointMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-PinPointMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PinPointMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-PinPointMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PinPointMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-The2019AcquisitionsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2019AcquisitionsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-VelocityMailMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VelocityMailMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-VelocityMailMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VelocityMailMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-VelocityMailMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VelocityMailMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-VelocityMailMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VelocityMailMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_BusinessAcquisitionAxis-VelocityMailMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VelocityMailMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_IncomeStatementLocationAxis-CostOfSalesMember">
    <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>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_IncomeStatementLocationAxis-GeneralAndAdministrativeExpenseMember">
    <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>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_IncomeStatementLocationAxis-ResearchAndDevelopmentExpenseMember">
    <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>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_IncomeStatementLocationAxis-SellingAndMarketingExpenseMember">
    <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>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_IncomeTaxAuthorityAxis-CA">
    <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>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_IncomeTaxAuthorityAxis-OtherCountriesMember">
    <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>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_IncomeTaxAuthorityAxis-US">
    <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>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_PlanNameAxis-CashsettledRestrictedShareUnitMember">
    <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>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_PlanNameAxis-DeferredShareUnitPlanMember">
    <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>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_ProductOrServiceAxis-LicenseMember">
    <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>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_ProductOrServiceAxis-ProfessionalServicesAndOtherMember">
    <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>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_ProductOrServiceAxis-ServiceMember">
    <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>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember">
    <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>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember">
    <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>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_StatementEquityComponentsAxis-CommonStockMember">
    <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>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_StatementEquityComponentsAxis-RetainedEarningsMember">
    <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>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_StatementGeographicalAxis-AsiaPacificMember">
    <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>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_StatementGeographicalAxis-CA">
    <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>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_StatementGeographicalAxis-EMEAMember">
    <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>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2019-01-31_StatementGeographicalAxis-US">
    <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>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2019-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-02_2018-02-02_BusinessAcquisitionAxis-AljexSoftwareIncMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:AljexSoftwareIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-02-02</xbrli:startDate>
      <xbrli:endDate>2018-02-02</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-06-06_2018-06-06_SubsidiarySaleOfStockAxis-ShelfProspectusMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">dsgx:ShelfProspectusMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-06-06</xbrli:startDate>
      <xbrli:endDate>2018-06-06</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-06-22_2018-06-22_BusinessAcquisitionAxis-VelocityMailMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VelocityMailMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-06-22</xbrli:startDate>
      <xbrli:endDate>2018-06-22</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-08-21_2018-08-21_BusinessAcquisitionAxis-PinPointMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PinPointMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-08-21</xbrli:startDate>
      <xbrli:endDate>2018-08-21</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-25_2019-01-25_CreditFacilityAxis-LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember_DebtInstrumentAxis-SeniorSecuredCreditFacilityMember">
    <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>2019-01-25</xbrli:startDate>
      <xbrli:endDate>2019-01-25</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-25_2019-01-25_CreditFacilityAxis-SeniorSecuredCreditFacilityMember_RangeAxis-MaximumMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-25</xbrli:startDate>
      <xbrli:endDate>2019-01-25</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-25_2019-01-25_CreditFacilityAxis-SeniorSecuredCreditFacilityMember_RangeAxis-MaximumMember_VariableRateAxis-CanadaOrUsPrimeRateBaOrLiborMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">dsgx:CanadaOrUsPrimeRateBaOrLiborMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-25</xbrli:startDate>
      <xbrli:endDate>2019-01-25</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-25_2019-01-25_CreditFacilityAxis-SeniorSecuredCreditFacilityMember_RangeAxis-MinimumMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-25</xbrli:startDate>
      <xbrli:endDate>2019-01-25</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-25_2019-01-25_CreditFacilityAxis-SeniorSecuredCreditFacilityMember_RangeAxis-MinimumMember_VariableRateAxis-CanadaOrUsPrimeRateBaOrLiborMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">dsgx:SeniorSecuredCreditFacilityMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">dsgx:CanadaOrUsPrimeRateBaOrLiborMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-25</xbrli:startDate>
      <xbrli:endDate>2019-01-25</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-02-01_2020-01-31">
    <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="d_2019-02-01_2020-01-31_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis-EmployeeStockOptionMember">
    <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="d_2019-02-01_2020-01-31_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis-PSUsAndRSUsMember">
    <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="d_2019-02-01_2020-01-31_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis-StockOptionsTreasuryStockMethodMember">
    <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="d_2019-02-01_2020-01-31_AwardTypeAxis-EmployeeStockOptionMember">
    <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>2019-02-01</xbrli:startDate>
      <xbrli:endDate>2020-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-02-01_2020-01-31_AwardTypeAxis-PerformanceSharesMember">
    <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="d_2019-02-01_2020-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember">
    <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="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-BesttransportMember">
    <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="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-BesttransportMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember">
    <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="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-BesttransportMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember">
    <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="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-BesttransportMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember">
    <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="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-BesttransportMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember">
    <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="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-COREKontainersAndShipTrackMember">
    <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>2019-02-01</xbrli:startDate>
      <xbrli:endDate>2020-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember">
    <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="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember">
    <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="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember">
    <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="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember">
    <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="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember">
    <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="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-KontainersMember">
    <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>2019-02-01</xbrli:startDate>
      <xbrli:endDate>2020-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-PeoplevoxMember">
    <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>2019-02-01</xbrli:startDate>
      <xbrli:endDate>2020-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-ShipTrackMember">
    <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>2019-02-01</xbrli:startDate>
      <xbrli:endDate>2020-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-StepcomMember">
    <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="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-StepcomMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember">
    <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="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-StepcomMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember">
    <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="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-StepcomMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember">
    <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="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-The2020AcquisitionsMember">
    <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="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember">
    <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="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember">
    <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="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember">
    <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="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember">
    <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="d_2019-02-01_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember">
    <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="d_2019-02-01_2020-01-31_IncomeStatementLocationAxis-CostOfSalesMember">
    <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="d_2019-02-01_2020-01-31_IncomeStatementLocationAxis-GeneralAndAdministrativeExpenseMember">
    <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="d_2019-02-01_2020-01-31_IncomeStatementLocationAxis-ResearchAndDevelopmentExpenseMember">
    <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="d_2019-02-01_2020-01-31_IncomeStatementLocationAxis-SellingAndMarketingExpenseMember">
    <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="d_2019-02-01_2020-01-31_IncomeTaxAuthorityAxis-CA">
    <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="d_2019-02-01_2020-01-31_IncomeTaxAuthorityAxis-OtherCountriesMember">
    <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="d_2019-02-01_2020-01-31_IncomeTaxAuthorityAxis-US">
    <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="d_2019-02-01_2020-01-31_PlanNameAxis-CashsettledRestrictedShareUnitMember">
    <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="d_2019-02-01_2020-01-31_PlanNameAxis-DeferredShareUnitPlanMember">
    <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="d_2019-02-01_2020-01-31_PlanNameAxis-ShareholderapprovedStockOptionPlanMember">
    <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>2019-02-01</xbrli:startDate>
      <xbrli:endDate>2020-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-02-01_2020-01-31_ProductOrServiceAxis-LicenseMember">
    <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="d_2019-02-01_2020-01-31_ProductOrServiceAxis-ProfessionalServicesAndOtherMember">
    <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="d_2019-02-01_2020-01-31_ProductOrServiceAxis-ServiceMember">
    <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="d_2019-02-01_2020-01-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember">
    <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="d_2019-02-01_2020-01-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember">
    <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="d_2019-02-01_2020-01-31_StatementEquityComponentsAxis-CommonStockMember">
    <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="d_2019-02-01_2020-01-31_StatementEquityComponentsAxis-RetainedEarningsMember">
    <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="d_2019-02-01_2020-01-31_StatementGeographicalAxis-AsiaPacificMember">
    <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="d_2019-02-01_2020-01-31_StatementGeographicalAxis-CA">
    <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="d_2019-02-01_2020-01-31_StatementGeographicalAxis-EMEAMember">
    <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="d_2019-02-01_2020-01-31_StatementGeographicalAxis-US">
    <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="d_2019-02-12_2019-02-12_BusinessAcquisitionAxis-VisualComplianceMember">
    <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="d_2019-05-10_2019-05-10_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember">
    <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="d_2019-06-10_2019-06-10">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-06-10</xbrli:startDate>
      <xbrli:endDate>2019-06-10</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-06-27_2019-06-27_BusinessAcquisitionAxis-StepcomMember">
    <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="d_2019-08-20_2019-08-20_BusinessAcquisitionAxis-BesttransportMember">
    <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="d_2020-02-01_2021-01-31">
    <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:context id="d_2020-02-01_2021-01-31_AdjustmentsForChangeInAccountingPrincipleAxis-VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember">
    <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>2020-02-01</xbrli:startDate>
      <xbrli:endDate>2021-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-02-01_2021-01-31_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis-EmployeeStockOptionMember">
    <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="d_2020-02-01_2021-01-31_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis-PSUsAndRSUsMember">
    <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="d_2020-02-01_2021-01-31_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis-StockOptionsTreasuryStockMethodMember">
    <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="d_2020-02-01_2021-01-31_AwardTypeAxis-CashsettledRestrictedSharePlanMember_RangeAxis-MaximumMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">dsgx:CashsettledRestrictedSharePlanMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</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="d_2020-02-01_2021-01-31_AwardTypeAxis-CashsettledRestrictedSharePlanMember_RangeAxis-MinimumMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">dsgx:CashsettledRestrictedSharePlanMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</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="d_2020-02-01_2021-01-31_AwardTypeAxis-DeferredShareUnitPlanMember">
    <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>2020-02-01</xbrli:startDate>
      <xbrli:endDate>2021-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-02-01_2021-01-31_AwardTypeAxis-EmployeeStockOptionMember">
    <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>2020-02-01</xbrli:startDate>
      <xbrli:endDate>2021-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-02-01_2021-01-31_AwardTypeAxis-EmployeeStockOptionMember_RangeAxis-MaximumMember_TitleOfIndividualAxis-DirectorsAndOfficersMember">
    <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="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">dsgx:DirectorsAndOfficersMember</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="d_2020-02-01_2021-01-31_AwardTypeAxis-EmployeeStockOptionMember_RangeAxis-MinimumMember_TitleOfIndividualAxis-DirectorsAndOfficersMember">
    <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="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">dsgx:DirectorsAndOfficersMember</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="d_2020-02-01_2021-01-31_AwardTypeAxis-PerformanceSharesMember">
    <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="d_2020-02-01_2021-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember">
    <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="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-BesttransportMember">
    <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>2020-02-01</xbrli:startDate>
      <xbrli:endDate>2021-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember">
    <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>2020-02-01</xbrli:startDate>
      <xbrli:endDate>2021-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-KontainersMember">
    <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="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-KontainersMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember">
    <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="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-KontainersMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember">
    <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="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-KontainersMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember">
    <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="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-KontainersMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember">
    <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="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-PeoplevoxMember">
    <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="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-PeoplevoxMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember">
    <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="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-PeoplevoxMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember">
    <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="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-PeoplevoxMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember">
    <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="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember">
    <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="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember">
    <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="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember">
    <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="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember">
    <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="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember">
    <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="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-StepcomMember">
    <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>2020-02-01</xbrli:startDate>
      <xbrli:endDate>2021-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-The2021AcquisitionsMember">
    <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="d_2020-02-01_2021-01-31_BusinessAcquisitionAxis-VisualComplianceMember">
    <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>2020-02-01</xbrli:startDate>
      <xbrli:endDate>2021-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-02-01_2021-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember_RangeAxis-MaximumMember">
    <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>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</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="d_2020-02-01_2021-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember_RangeAxis-MinimumMember">
    <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>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</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="d_2020-02-01_2021-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember_RangeAxis-MaximumMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</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="d_2020-02-01_2021-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember_RangeAxis-MinimumMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</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="d_2020-02-01_2021-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember_RangeAxis-MaximumMember">
    <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>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</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="d_2020-02-01_2021-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember_RangeAxis-MinimumMember">
    <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>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</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="d_2020-02-01_2021-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember_RangeAxis-MaximumMember">
    <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>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</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="d_2020-02-01_2021-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember_RangeAxis-MinimumMember">
    <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>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</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="d_2020-02-01_2021-01-31_IncomeStatementLocationAxis-CostOfSalesMember">
    <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="d_2020-02-01_2021-01-31_IncomeStatementLocationAxis-GeneralAndAdministrativeExpenseMember">
    <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="d_2020-02-01_2021-01-31_IncomeStatementLocationAxis-ResearchAndDevelopmentExpenseMember">
    <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="d_2020-02-01_2021-01-31_IncomeStatementLocationAxis-SellingAndMarketingExpenseMember">
    <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="d_2020-02-01_2021-01-31_IncomeTaxAuthorityAxis-CA">
    <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="d_2020-02-01_2021-01-31_IncomeTaxAuthorityAxis-OtherCountriesMember">
    <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="d_2020-02-01_2021-01-31_IncomeTaxAuthorityAxis-US">
    <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="d_2020-02-01_2021-01-31_PlanNameAxis-CashsettledRestrictedShareUnitMember">
    <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="d_2020-02-01_2021-01-31_PlanNameAxis-DeferredShareUnitPlanMember">
    <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="d_2020-02-01_2021-01-31_PlanNameAxis-ShareholderapprovedStockOptionPlanMember">
    <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="d_2020-02-01_2021-01-31_ProductOrServiceAxis-LicenseMember">
    <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="d_2020-02-01_2021-01-31_ProductOrServiceAxis-ProfessionalServicesAndOtherMember">
    <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="d_2020-02-01_2021-01-31_ProductOrServiceAxis-ServiceMember">
    <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="d_2020-02-01_2021-01-31_PropertyPlantAndEquipmentByTypeAxis-ComputerEquipmentMember_RangeAxis-MaximumMember">
    <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>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</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="d_2020-02-01_2021-01-31_PropertyPlantAndEquipmentByTypeAxis-ComputerEquipmentMember_RangeAxis-MinimumMember">
    <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>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</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="d_2020-02-01_2021-01-31_PropertyPlantAndEquipmentByTypeAxis-EquipmentMember">
    <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>2020-02-01</xbrli:startDate>
      <xbrli:endDate>2021-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-02-01_2021-01-31_PropertyPlantAndEquipmentByTypeAxis-FurnitureAndFixturesMember_RangeAxis-MaximumMember">
    <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>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</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="d_2020-02-01_2021-01-31_PropertyPlantAndEquipmentByTypeAxis-FurnitureAndFixturesMember_RangeAxis-MinimumMember">
    <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>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</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="d_2020-02-01_2021-01-31_RangeAxis-MaximumMember">
    <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>2020-02-01</xbrli:startDate>
      <xbrli:endDate>2021-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-02-01_2021-01-31_RangeAxis-MinimumMember">
    <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>2020-02-01</xbrli:startDate>
      <xbrli:endDate>2021-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-02-01_2021-01-31_RestructuringCostAndReserveAxis-EmployeeSeveranceMember">
    <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="d_2020-02-01_2021-01-31_RestructuringCostAndReserveAxis-FacilityClosingMember">
    <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="d_2020-02-01_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range1Member">
    <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>2020-02-01</xbrli:startDate>
      <xbrli:endDate>2021-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-02-01_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range2Member">
    <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>2020-02-01</xbrli:startDate>
      <xbrli:endDate>2021-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-02-01_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range3Member">
    <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>2020-02-01</xbrli:startDate>
      <xbrli:endDate>2021-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-02-01_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range4Member">
    <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>2020-02-01</xbrli:startDate>
      <xbrli:endDate>2021-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-02-01_2021-01-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember">
    <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="d_2020-02-01_2021-01-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember">
    <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="d_2020-02-01_2021-01-31_StatementEquityComponentsAxis-CommonStockMember">
    <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="d_2020-02-01_2021-01-31_StatementEquityComponentsAxis-RetainedEarningsMember">
    <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="d_2020-02-01_2021-01-31_StatementGeographicalAxis-AsiaPacificMember">
    <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="d_2020-02-01_2021-01-31_StatementGeographicalAxis-CA">
    <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="d_2020-02-01_2021-01-31_StatementGeographicalAxis-EMEAMember">
    <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="d_2020-02-01_2021-01-31_StatementGeographicalAxis-US">
    <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="d_2020-02-21_2020-02-21_BusinessAcquisitionAxis-PeoplevoxMember">
    <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="d_2020-05-01_2020-07-31_RestructuringPlanAxis-Fiscal2021RestructuringPlanMember">
    <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="d_2020-06-10_2020-06-10_BusinessAcquisitionAxis-KontainersMember">
    <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="d_2020-07-16_2020-07-16_SubsidiarySaleOfStockAxis-The2020BaseShelfProspectusMember">
    <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="d_2020-07-17_2021-01-31_SubsidiarySaleOfStockAxis-The2020BaseShelfProspectusMember">
    <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-17</xbrli:startDate>
      <xbrli:endDate>2021-01-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-11-06_2020-11-06_BusinessAcquisitionAxis-ShipTrackMember">
    <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="d_2021-02-26_2021-02-26_BusinessAcquisitionAxis-VitaDexSolutionsLLCMember_SubsequentEventTypeAxis-SubsequentEventMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VitaDexSolutionsLLCMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</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="i_2018-01-31">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-01-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember">
    <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>2018-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-01-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember">
    <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>2018-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-01-31_StatementEquityComponentsAxis-CommonStockMember">
    <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>2018-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-01-31_StatementEquityComponentsAxis-RetainedEarningsMember">
    <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>2018-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-02-01_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201409Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201409Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-02-01</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-02-01_AdjustmentsForNewAccountingPronouncementsAxis-TheAccountingStandardsUpdate201616Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">dsgx:TheAccountingStandardsUpdate201616Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-02-01</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-02-02_BusinessAcquisitionAxis-AljexSoftwareIncMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:AljexSoftwareIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-02-02</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-06-06_SubsidiarySaleOfStockAxis-ShelfProspectusMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">dsgx:ShelfProspectusMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-06-06</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-06-22_BusinessAcquisitionAxis-VelocityMailMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VelocityMailMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-06-22</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-08-21_BusinessAcquisitionAxis-PinPointMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PinPointMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-08-21</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-01-25_CreditFacilityAxis-RevolvingOperatingCreditFacilityMember_DebtInstrumentAxis-SeniorSecuredCreditFacilityMember">
    <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>2019-01-25</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-01-25_CreditFacilityAxis-RevolvingOperatingCreditFacilityMember_DebtInstrumentAxis-SeniorSecuredCreditFacilityMember_RangeAxis-MaximumMember">
    <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>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-01-25</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-01-31">
    <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="i_2019-01-31_AwardTypeAxis-PerformanceSharesMember">
    <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>2019-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember">
    <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>2019-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-01-31_BusinessAcquisitionAxis-AljexSoftwareIncMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:AljexSoftwareIncMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-01-31_BusinessAcquisitionAxis-AljexSoftwareIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:AljexSoftwareIncMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-01-31_BusinessAcquisitionAxis-AljexSoftwareIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:AljexSoftwareIncMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-01-31_BusinessAcquisitionAxis-AljexSoftwareIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:AljexSoftwareIncMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-01-31_BusinessAcquisitionAxis-AljexSoftwareIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:AljexSoftwareIncMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-01-31_BusinessAcquisitionAxis-PinPointMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PinPointMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-01-31_BusinessAcquisitionAxis-PinPointMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PinPointMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-01-31_BusinessAcquisitionAxis-PinPointMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PinPointMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-01-31_BusinessAcquisitionAxis-PinPointMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PinPointMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-01-31_BusinessAcquisitionAxis-PinPointMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:PinPointMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-01-31_BusinessAcquisitionAxis-The2019AcquisitionsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2019AcquisitionsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-01-31_BusinessAcquisitionAxis-The2019AcquisitionsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2019AcquisitionsMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-01-31_BusinessAcquisitionAxis-The2019AcquisitionsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2019AcquisitionsMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-01-31_BusinessAcquisitionAxis-The2019AcquisitionsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2019AcquisitionsMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-01-31_BusinessAcquisitionAxis-The2019AcquisitionsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:The2019AcquisitionsMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-01-31_BusinessAcquisitionAxis-VelocityMailMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VelocityMailMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-01-31_BusinessAcquisitionAxis-VelocityMailMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VelocityMailMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-01-31_BusinessAcquisitionAxis-VelocityMailMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VelocityMailMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-01-31_BusinessAcquisitionAxis-VelocityMailMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VelocityMailMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-01-31_BusinessAcquisitionAxis-VelocityMailMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">dsgx:VelocityMailMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-01-31_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:CumulativeEffectPeriodOfAdoptionAxis">srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember</xbrldi:explicitMember>
        <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="i_2019-01-31_PlanNameAxis-ShareholderapprovedStockOptionPlanMember">
    <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>2019-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-01-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember">
    <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="i_2019-01-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember">
    <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="i_2019-01-31_StatementEquityComponentsAxis-CommonStockMember">
    <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="i_2019-01-31_StatementEquityComponentsAxis-RetainedEarningsMember">
    <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="i_2019-02-01_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201602Member">
    <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="i_2019-02-12_BusinessAcquisitionAxis-VisualComplianceMember">
    <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="i_2019-05-10_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember">
    <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="i_2019-06-10">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-06-10</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-06-27_BusinessAcquisitionAxis-StepcomMember">
    <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="i_2019-08-20_BusinessAcquisitionAxis-BesttransportMember">
    <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="i_2020-01-31">
    <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="i_2020-01-31_AwardTypeAxis-PerformanceSharesMember">
    <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="i_2020-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember">
    <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="i_2020-01-31_BusinessAcquisitionAxis-BesttransportMember">
    <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="i_2020-01-31_BusinessAcquisitionAxis-BesttransportMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember">
    <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="i_2020-01-31_BusinessAcquisitionAxis-BesttransportMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember">
    <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="i_2020-01-31_BusinessAcquisitionAxis-BesttransportMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember">
    <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="i_2020-01-31_BusinessAcquisitionAxis-BesttransportMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember">
    <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="i_2020-01-31_BusinessAcquisitionAxis-COREKontainersAndShipTrackMember">
    <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>2020-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember">
    <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="i_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember">
    <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="i_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember">
    <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="i_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember">
    <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="i_2020-01-31_BusinessAcquisitionAxis-CoreTransportTechnologiesNzLimitedMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember">
    <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="i_2020-01-31_BusinessAcquisitionAxis-StepcomMember">
    <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="i_2020-01-31_BusinessAcquisitionAxis-StepcomMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember">
    <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="i_2020-01-31_BusinessAcquisitionAxis-StepcomMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember">
    <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">dsgx:ExistingTechnologyMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2020-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-01-31_BusinessAcquisitionAxis-StepcomMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember">
    <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="i_2020-01-31_BusinessAcquisitionAxis-StepcomMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember">
    <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="i_2020-01-31_BusinessAcquisitionAxis-The2020AcquisitionsMember">
    <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="i_2020-01-31_BusinessAcquisitionAxis-The2020AcquisitionsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember">
    <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="i_2020-01-31_BusinessAcquisitionAxis-The2020AcquisitionsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember">
    <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="i_2020-01-31_BusinessAcquisitionAxis-The2020AcquisitionsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember">
    <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="i_2020-01-31_BusinessAcquisitionAxis-The2020AcquisitionsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember">
    <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="i_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember">
    <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="i_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember">
    <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="i_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember">
    <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="i_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember">
    <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="i_2020-01-31_BusinessAcquisitionAxis-VisualComplianceMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember">
    <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="i_2020-01-31_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:CumulativeEffectPeriodOfAdoptionAxis">srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember</xbrldi:explicitMember>
        <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="i_2020-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember">
    <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>2020-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-DevelopedTechnologyRightsMember">
    <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>2020-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember">
    <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>2020-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember">
    <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>2020-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-01-31_HedgingDesignationAxis-DesignatedAsHedgingInstrumentMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:DesignatedAsHedgingInstrumentMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2020-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-01-31_HedgingDesignationAxis-NondesignatedMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2020-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-01-31_PlanNameAxis-CashsettledRestrictedShareUnitMember">
    <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>2020-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-01-31_PlanNameAxis-DeferredShareUnitPlanMember">
    <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>2020-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-01-31_PlanNameAxis-ShareholderapprovedStockOptionPlanMember">
    <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="i_2020-01-31_PropertyPlantAndEquipmentByTypeAxis-AssetUnderConstructionMember">
    <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>2020-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-01-31_PropertyPlantAndEquipmentByTypeAxis-ComputerEquipmentMember">
    <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>2020-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-01-31_PropertyPlantAndEquipmentByTypeAxis-EquipmentInstalledWithCustomersMember">
    <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>2020-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-01-31_PropertyPlantAndEquipmentByTypeAxis-FurnitureAndFixturesMember">
    <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>2020-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-01-31_PropertyPlantAndEquipmentByTypeAxis-LeaseholdImprovementsMember">
    <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>2020-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-01-31_RestructuringCostAndReserveAxis-EmployeeSeveranceMember">
    <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>2020-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-01-31_RestructuringCostAndReserveAxis-FacilityClosingMember">
    <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:instant>2020-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-01-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember">
    <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="i_2020-01-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember">
    <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="i_2020-01-31_StatementEquityComponentsAxis-CommonStockMember">
    <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="i_2020-01-31_StatementEquityComponentsAxis-RetainedEarningsMember">
    <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="i_2020-01-31_StatementGeographicalAxis-AsiaPacificMember">
    <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>2020-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-01-31_StatementGeographicalAxis-CA">
    <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>2020-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-01-31_StatementGeographicalAxis-EMEAMember">
    <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>2020-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-01-31_StatementGeographicalAxis-US">
    <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>2020-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-02-21_BusinessAcquisitionAxis-PeoplevoxMember">
    <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="i_2020-06-10_BusinessAcquisitionAxis-KontainersMember">
    <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="i_2020-07-16_SubsidiarySaleOfStockAxis-The2020BaseShelfProspectusMember">
    <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="i_2020-11-06_BusinessAcquisitionAxis-ShipTrackMember">
    <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="i_2021-01-31">
    <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="i_2021-01-31_AwardTypeAxis-EmployeeStockOptionMember">
    <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>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_AwardTypeAxis-EmployeeStockOptionMember_PlanNameAxis-ShareholderapprovedStockOptionPlanMember">
    <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>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_AwardTypeAxis-PerformanceSharesMember">
    <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="i_2021-01-31_AwardTypeAxis-RestrictedStockUnitsRSUMember">
    <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="i_2021-01-31_BusinessAcquisitionAxis-KontainersMember">
    <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="i_2021-01-31_BusinessAcquisitionAxis-KontainersMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember">
    <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="i_2021-01-31_BusinessAcquisitionAxis-KontainersMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember">
    <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="i_2021-01-31_BusinessAcquisitionAxis-KontainersMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember">
    <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="i_2021-01-31_BusinessAcquisitionAxis-KontainersMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember">
    <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="i_2021-01-31_BusinessAcquisitionAxis-PeoplevoxMember">
    <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="i_2021-01-31_BusinessAcquisitionAxis-PeoplevoxMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember">
    <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="i_2021-01-31_BusinessAcquisitionAxis-PeoplevoxMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember">
    <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="i_2021-01-31_BusinessAcquisitionAxis-PeoplevoxMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember">
    <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="i_2021-01-31_BusinessAcquisitionAxis-PeoplevoxMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember">
    <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:TradeNamesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember">
    <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="i_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember">
    <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="i_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember">
    <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="i_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember">
    <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="i_2021-01-31_BusinessAcquisitionAxis-ShipTrackMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember">
    <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="i_2021-01-31_BusinessAcquisitionAxis-The2021AcquisitionsMember">
    <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="i_2021-01-31_BusinessAcquisitionAxis-The2021AcquisitionsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember">
    <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="i_2021-01-31_BusinessAcquisitionAxis-The2021AcquisitionsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-ExistingTechnologyMember">
    <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="i_2021-01-31_BusinessAcquisitionAxis-The2021AcquisitionsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember">
    <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="i_2021-01-31_BusinessAcquisitionAxis-The2021AcquisitionsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember">
    <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="i_2021-01-31_CreditFacilityAxis-RevolvingOperatingCreditFacilityMember_DebtInstrumentAxis-SeniorSecuredCreditFacilityMember">
    <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>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:CumulativeEffectPeriodOfAdoptionAxis">srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember</xbrldi:explicitMember>
        <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="i_2021-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember">
    <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="i_2021-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-DevelopedTechnologyRightsMember">
    <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="i_2021-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember">
    <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="i_2021-01-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember">
    <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="i_2021-01-31_HedgingDesignationAxis-DesignatedAsHedgingInstrumentMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:DesignatedAsHedgingInstrumentMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_HedgingDesignationAxis-NondesignatedMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_IncomeTaxAuthorityAxis-DomesticCountryMember">
    <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>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_IncomeTaxAuthorityAxis-DomesticCountryMember_IncomeTaxAuthorityNameAxis-InternalRevenueServiceIRSMember_TaxPeriodAxis-AfterTaxYear2026Member">
    <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>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_IncomeTaxAuthorityAxis-DomesticCountryMember_IncomeTaxAuthorityNameAxis-InternalRevenueServiceIRSMember_TaxPeriodAxis-TaxYear2022Member">
    <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:TaxYear2022Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_IncomeTaxAuthorityAxis-DomesticCountryMember_IncomeTaxAuthorityNameAxis-InternalRevenueServiceIRSMember_TaxPeriodAxis-TaxYear2023Member">
    <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:TaxYear2023Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_IncomeTaxAuthorityAxis-DomesticCountryMember_IncomeTaxAuthorityNameAxis-InternalRevenueServiceIRSMember_TaxPeriodAxis-TaxYear2024Member">
    <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:TaxYear2024Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_IncomeTaxAuthorityAxis-DomesticCountryMember_IncomeTaxAuthorityNameAxis-InternalRevenueServiceIRSMember_TaxPeriodAxis-TaxYear2025Member">
    <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:TaxYear2025Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_IncomeTaxAuthorityAxis-DomesticCountryMember_TaxPeriodAxis-TaxYear2026Member">
    <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:TaxPeriodAxis">dsgx:TaxYear2026Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-AsiaPacificIncomeTaxAuthorityMember">
    <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>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-AsiaPacificIncomeTaxAuthorityMember_TaxPeriodAxis-AfterTaxYear2026Member">
    <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>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-AsiaPacificIncomeTaxAuthorityMember_TaxPeriodAxis-TaxYear2022Member">
    <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>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-AsiaPacificIncomeTaxAuthorityMember_TaxPeriodAxis-TaxYear2023Member">
    <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>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-AsiaPacificIncomeTaxAuthorityMember_TaxPeriodAxis-TaxYear2024Member">
    <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>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-AsiaPacificIncomeTaxAuthorityMember_TaxPeriodAxis-TaxYear2025Member">
    <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:TaxYear2025Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-AsiaPacificIncomeTaxAuthorityMember_TaxPeriodAxis-TaxYear2026Member">
    <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>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-CanadaRevenueAgencyMember">
    <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>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-CanadaRevenueAgencyMember_TaxPeriodAxis-AfterTaxYear2026Member">
    <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>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-CanadaRevenueAgencyMember_TaxPeriodAxis-TaxYear2022Member">
    <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:TaxYear2022Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-CanadaRevenueAgencyMember_TaxPeriodAxis-TaxYear2023Member">
    <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:TaxYear2023Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-CanadaRevenueAgencyMember_TaxPeriodAxis-TaxYear2024Member">
    <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:TaxYear2024Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-CanadaRevenueAgencyMember_TaxPeriodAxis-TaxYear2025Member">
    <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:TaxYear2025Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-CanadaRevenueAgencyMember_TaxPeriodAxis-TaxYear2026Member">
    <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:TaxYear2026Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-EmeaIncomeTaxAuthorityMember">
    <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>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-EmeaIncomeTaxAuthorityMember_TaxPeriodAxis-AfterTaxYear2026Member">
    <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>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-EmeaIncomeTaxAuthorityMember_TaxPeriodAxis-TaxYear2022Member">
    <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:TaxYear2022Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-EmeaIncomeTaxAuthorityMember_TaxPeriodAxis-TaxYear2023Member">
    <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:TaxYear2023Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-EmeaIncomeTaxAuthorityMember_TaxPeriodAxis-TaxYear2024Member">
    <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>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-EmeaIncomeTaxAuthorityMember_TaxPeriodAxis-TaxYear2025Member">
    <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:TaxYear2025Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_IncomeTaxAuthorityAxis-ForeignCountryMember_IncomeTaxAuthorityNameAxis-EmeaIncomeTaxAuthorityMember_TaxPeriodAxis-TaxYear2026Member">
    <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:TaxYear2026Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_PlanNameAxis-CashsettledRestrictedShareUnitMember">
    <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="i_2021-01-31_PlanNameAxis-DeferredShareUnitPlanMember">
    <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="i_2021-01-31_PlanNameAxis-ShareholderapprovedStockOptionPlanMember">
    <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="i_2021-01-31_PropertyPlantAndEquipmentByTypeAxis-AssetUnderConstructionMember">
    <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="i_2021-01-31_PropertyPlantAndEquipmentByTypeAxis-ComputerEquipmentMember">
    <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="i_2021-01-31_PropertyPlantAndEquipmentByTypeAxis-EquipmentInstalledWithCustomersMember">
    <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="i_2021-01-31_PropertyPlantAndEquipmentByTypeAxis-FurnitureAndFixturesMember">
    <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="i_2021-01-31_PropertyPlantAndEquipmentByTypeAxis-LeaseholdImprovementsMember">
    <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="i_2021-01-31_RangeAxis-MaximumMember">
    <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:instant>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_RestructuringCostAndReserveAxis-EmployeeSeveranceMember">
    <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="i_2021-01-31_RestructuringCostAndReserveAxis-FacilityClosingMember">
    <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:instant>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_RestructuringPlanAxis-Fiscal2021RestructuringPlanMember">
    <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:instant>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis-RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain-2021-02-01">
    <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>2021-02-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
        </xbrldi:typedMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range1Member">
    <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>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range2Member">
    <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>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range3Member">
    <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>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-Range4Member">
    <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>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember">
    <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="i_2021-01-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember">
    <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="i_2021-01-31_StatementEquityComponentsAxis-CommonStockMember">
    <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="i_2021-01-31_StatementEquityComponentsAxis-RetainedEarningsMember">
    <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="i_2021-01-31_StatementGeographicalAxis-AsiaPacificMember">
    <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="i_2021-01-31_StatementGeographicalAxis-CA">
    <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="i_2021-01-31_StatementGeographicalAxis-EMEAMember">
    <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="i_2021-01-31_StatementGeographicalAxis-US">
    <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="i_2021-01-31_TaxPeriodAxis-AfterTaxYear2026Member">
    <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>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_TaxPeriodAxis-TaxYear2022Member">
    <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>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_TaxPeriodAxis-TaxYear2023Member">
    <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>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_TaxPeriodAxis-TaxYear2024Member">
    <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>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_TaxPeriodAxis-TaxYear2025Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0001050140</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:TaxPeriodAxis">dsgx:TaxYear2025Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2021-01-31_TaxPeriodAxis-TaxYear2026Member">
    <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>2021-01-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
</xbrli:xbrl>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>8
<FILENAME>dsgx-20210131.xsd
<DESCRIPTION>XBRL TAXONOMY EXTENSION SCHEMA
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!--Generated by ThunderDome XBRL - 01:19AM UTC 2021-03-23--><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:country="http://xbrl.sec.gov/country/2020-01-31" xmlns:currency="http://xbrl.sec.gov/currency/2020-01-31" xmlns:dei="http://xbrl.sec.gov/dei/2019-01-31" xmlns:dsgx="http://www.descartes.com/20210131" xmlns:exch="http://xbrl.sec.gov/exch/2020-01-31" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:naics="http://xbrl.sec.gov/naics/2011-01-31" xmlns:nonnum="http://www.xbrl.org/dtr/type/non-numeric" xmlns:num="http://www.xbrl.org/dtr/type/numeric" xmlns:sic="http://xbrl.sec.gov/sic/2020-01-31" xmlns:srt="http://fasb.org/srt/2020-01-31" xmlns:srt-types="http://fasb.org/srt-types/2020-01-31" xmlns:stpr="http://xbrl.sec.gov/stpr/2018-01-31" xmlns:us-gaap="http://fasb.org/us-gaap/2020-01-31" xmlns:us-types="http://fasb.org/us-types/2020-01-31" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xlink="http://www.w3.org/1999/xlink" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.descartes.com/20210131">
  <xsd:import namespace="http://xbrl.sec.gov/sic/2020-01-31" schemaLocation="https://xbrl.sec.gov/sic/2020/sic-2020-01-31.xsd"/>
  <xsd:import namespace="http://xbrl.sec.gov/exch/2020-01-31" schemaLocation="https://xbrl.sec.gov/exch/2020/exch-2020-01-31.xsd"/>
  <xsd:import namespace="http://xbrl.sec.gov/naics/2011-01-31" schemaLocation="http://xbrl.sec.gov/naics/2011/naics-2011-01-31.xsd"/>
  <xsd:import namespace="http://www.xbrl.org/2003/instance" schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd"/>
  <xsd:import namespace="http://fasb.org/us-gaap/2020-01-31" schemaLocation="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd"/>
  <xsd:import namespace="http://xbrl.sec.gov/country/2020-01-31" schemaLocation="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd"/>
  <xsd:import namespace="http://fasb.org/us-types/2020-01-31" schemaLocation="http://xbrl.fasb.org/us-gaap/2020/elts/us-types-2020-01-31.xsd"/>
  <xsd:import namespace="http://www.xbrl.org/dtr/type/non-numeric" schemaLocation="http://www.xbrl.org/dtr/type/nonNumeric-2009-12-16.xsd"/>
  <xsd:import namespace="http://xbrl.sec.gov/stpr/2018-01-31" schemaLocation="https://xbrl.sec.gov/stpr/2018/stpr-2018-01-31.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/dtr/type/numeric" schemaLocation="http://www.xbrl.org/dtr/type/numeric-2009-12-16.xsd"/>
  <xsd:import namespace="http://xbrl.sec.gov/currency/2020-01-31" schemaLocation="https://xbrl.sec.gov/currency/2020/currency-2020-01-31.xsd"/>
  <xsd:import namespace="http://fasb.org/srt-types/2020-01-31" schemaLocation="http://xbrl.fasb.org/srt/2020/elts/srt-types-2020-01-31.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/2020-01-31" schemaLocation="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd"/>
  <xsd:annotation>
    <xsd:appinfo>
      <link:linkbaseRef xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="dsgx-20210131_lab.xml" xlink:role="http://www.xbrl.org/2003/role/labelLinkbaseRef" xlink:type="simple"/>
      <link:linkbaseRef xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="dsgx-20210131_cal.xml" xlink:role="http://www.xbrl.org/2003/role/calculationLinkbaseRef" xlink:type="simple"/>
      <link:linkbaseRef xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="dsgx-20210131_def.xml" xlink:role="http://www.xbrl.org/2003/role/definitionLinkbaseRef" xlink:type="simple"/>
      <link:linkbaseRef xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="dsgx-20210131_pre.xml" xlink:role="http://www.xbrl.org/2003/role/presentationLinkbaseRef" xlink:type="simple"/>
      <link:roleType id="statement-document-and-entity-information" roleURI="http://www.descartes.com/20210131/role/statement-document-and-entity-information">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">000 - Document - Document And Entity Information</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-consolidated-balance-sheets" roleURI="http://www.descartes.com/20210131/role/statement-consolidated-balance-sheets">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">001 - Statement - Consolidated Balance Sheets</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-consolidated-balance-sheets-parentheticals" roleURI="http://www.descartes.com/20210131/role/statement-consolidated-balance-sheets-parentheticals">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">002 - Statement - Consolidated Balance Sheets (Parentheticals)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-consolidated-statements-of-operations-" roleURI="http://www.descartes.com/20210131/role/statement-consolidated-statements-of-operations-">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">003 - Statement - Consolidated Statements of Operations</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-consolidated-statements-of-comprehensive-income" roleURI="http://www.descartes.com/20210131/role/statement-consolidated-statements-of-comprehensive-income">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">004 - Statement - Consolidated Statements of Comprehensive Income</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-consolidated-statements-of-comprehensive-income-parentheticals" roleURI="http://www.descartes.com/20210131/role/statement-consolidated-statements-of-comprehensive-income-parentheticals">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">005 - Statement - Consolidated Statements of Comprehensive Income (Parentheticals)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-consolidated-statements-of-shareholders-equity" roleURI="http://www.descartes.com/20210131/role/statement-consolidated-statements-of-shareholders-equity">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">006 - Statement - Consolidated Statements of Shareholders' Equity</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-consolidated-statements-of-cash-flows" roleURI="http://www.descartes.com/20210131/role/statement-consolidated-statements-of-cash-flows">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">007 - Statement - Consolidated Statements of Cash Flows</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-1-description-of-the-business" roleURI="http://www.descartes.com/20210131/role/statement-note-1-description-of-the-business">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">008 - Disclosure - Note 1 - Description of the Business</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-2-basis-of-presentation" roleURI="http://www.descartes.com/20210131/role/statement-note-2-basis-of-presentation">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">009 - Disclosure - Note 2 - Basis of Presentation</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-3-acquisitions" roleURI="http://www.descartes.com/20210131/role/statement-note-3-acquisitions">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">010 - Disclosure - Note 3 - Acquisitions</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-4-fair-value-measurements" roleURI="http://www.descartes.com/20210131/role/statement-note-4-fair-value-measurements">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">011 - Disclosure - Note 4 - Fair Value Measurements</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-5-trade-accounts-receivable" roleURI="http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">012 - Disclosure - Note 5 - Trade Accounts Receivable</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-6-other-receivables" roleURI="http://www.descartes.com/20210131/role/statement-note-6-other-receivables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">013 - Disclosure - Note 6 - Other Receivables</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-7-inventory" roleURI="http://www.descartes.com/20210131/role/statement-note-7-inventory">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">014 - Disclosure - Note 7 - Inventory</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement--note-8-property-and-equipment-" roleURI="http://www.descartes.com/20210131/role/statement--note-8-property-and-equipment-">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">015 - Disclosure - Note 8 - Property and Equipment</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-9-intangible-assets" roleURI="http://www.descartes.com/20210131/role/statement-note-9-intangible-assets">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">016 - Disclosure - Note 9 - Intangible Assets</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-10-goodwill" roleURI="http://www.descartes.com/20210131/role/statement-note-10-goodwill">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">017 - Disclosure - Note 10 - Goodwill</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-11-accrued-liabilities" roleURI="http://www.descartes.com/20210131/role/statement-note-11-accrued-liabilities">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">018 - Disclosure - Note 11 - Accrued Liabilities</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-12-longterm-debt" roleURI="http://www.descartes.com/20210131/role/statement-note-12-longterm-debt">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">019 - Disclosure - Note 12 - Long-term Debt</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-13-leases" roleURI="http://www.descartes.com/20210131/role/statement-note-13-leases">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">020 - Disclosure - Note 13 - Leases</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-14-commitments-contingencies-and-guarantees" roleURI="http://www.descartes.com/20210131/role/statement-note-14-commitments-contingencies-and-guarantees">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">021 - Disclosure - Note 14 - Commitments, Contingencies and Guarantees</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-15-share-capital" roleURI="http://www.descartes.com/20210131/role/statement-note-15-share-capital">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">022 - Disclosure - Note 15 - Share Capital</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-16-earnings-per-share" roleURI="http://www.descartes.com/20210131/role/statement-note-16-earnings-per-share">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">023 - Disclosure - Note 16 - Earnings Per Share</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-17-stockbased-compensation-plans" roleURI="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">024 - Disclosure - Note 17 - Stock-based Compensation Plans</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-18-income-taxes" roleURI="http://www.descartes.com/20210131/role/statement-note-18-income-taxes">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">025 - Disclosure - Note 18 - Income Taxes</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-19-contract-balances-performance-obligations-and-contract-costs" roleURI="http://www.descartes.com/20210131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">026 - Disclosure - Note 19 - Contract Balances, Performance Obligations and Contract Costs</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-20-other-charges" roleURI="http://www.descartes.com/20210131/role/statement-note-20-other-charges">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">027 - Disclosure - Note 20 - Other Charges</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-21-supplemental-cash-flow-information" roleURI="http://www.descartes.com/20210131/role/statement-note-21-supplemental-cash-flow-information">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">028 - Disclosure - Note 21 - Supplemental Cash Flow Information</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-22-segmented-information" roleURI="http://www.descartes.com/20210131/role/statement-note-22-segmented-information">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">029 - Disclosure - Note 22 - Segmented Information</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-23-subsequent-event-" roleURI="http://www.descartes.com/20210131/role/statement-note-23-subsequent-event-">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">030 - Disclosure - Note 23 - Subsequent Event</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-significant-accounting-policies-policies" roleURI="http://www.descartes.com/20210131/role/statement-significant-accounting-policies-policies">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">031 - Disclosure - Significant Accounting Policies (Policies)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-3-acquisitions-tables" roleURI="http://www.descartes.com/20210131/role/statement-note-3-acquisitions-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">032 - Disclosure - Note 3 - Acquisitions (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-4-fair-value-measurements-tables" roleURI="http://www.descartes.com/20210131/role/statement-note-4-fair-value-measurements-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">033 - Disclosure - Note 4 - Fair Value Measurements (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-5-trade-accounts-receivable-tables" roleURI="http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">034 - Disclosure - Note 5 - Trade Accounts Receivable (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-6-other-receivables-tables" roleURI="http://www.descartes.com/20210131/role/statement-note-6-other-receivables-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">035 - Disclosure - Note 6 - Other Receivables (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement--note-8-property-and-equipment-tables" roleURI="http://www.descartes.com/20210131/role/statement--note-8-property-and-equipment-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">036 - Disclosure - Note 8 - Property and Equipment (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-9-intangible-assets-tables" roleURI="http://www.descartes.com/20210131/role/statement-note-9-intangible-assets-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">037 - Disclosure - Note 9 - Intangible Assets (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-10-goodwill-tables" roleURI="http://www.descartes.com/20210131/role/statement-note-10-goodwill-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">038 - Disclosure - Note 10 - Goodwill (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-11-accrued-liabilities-tables" roleURI="http://www.descartes.com/20210131/role/statement-note-11-accrued-liabilities-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">039 - Disclosure - Note 11 - Accrued Liabilities (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-13-leases-tables" roleURI="http://www.descartes.com/20210131/role/statement-note-13-leases-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">040 - Disclosure - Note 13 - Leases (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-15-share-capital-tables" roleURI="http://www.descartes.com/20210131/role/statement-note-15-share-capital-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">041 - Disclosure - Note 15 - Share Capital (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-16-earnings-per-share-tables" roleURI="http://www.descartes.com/20210131/role/statement-note-16-earnings-per-share-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">042 - Disclosure - Note 16 - Earnings Per Share (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-17-stockbased-compensation-plans-tables" roleURI="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">043 - Disclosure - Note 17 - Stock-based Compensation Plans (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-18-income-taxes-tables" roleURI="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">044 - Disclosure - Note 18 - Income Taxes (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-19-contract-balances-performance-obligations-and-contract-costs-tables" roleURI="http://www.descartes.com/20210131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">045 - Disclosure - Note 19 - Contract Balances, Performance Obligations and Contract Costs (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-20-other-charges-tables" roleURI="http://www.descartes.com/20210131/role/statement-note-20-other-charges-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">046 - Disclosure - Note 20 - Other Charges (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-21-supplemental-cash-flow-information-tables" roleURI="http://www.descartes.com/20210131/role/statement-note-21-supplemental-cash-flow-information-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">047 - Disclosure - Note 21 - Supplemental Cash Flow Information (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-22-segmented-information-tables" roleURI="http://www.descartes.com/20210131/role/statement-note-22-segmented-information-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">048 - Disclosure - Note 22 - Segmented Information (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-2-basis-of-presentation-details-textual" roleURI="http://www.descartes.com/20210131/role/statement-note-2-basis-of-presentation-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">049 - Disclosure - Note 2 - Basis of Presentation (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-3-acquisitions-details-textual" roleURI="http://www.descartes.com/20210131/role/statement-note-3-acquisitions-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">050 - Disclosure - Note 3 - Acquisitions (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details" roleURI="http://www.descartes.com/20210131/role/statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">051 - Disclosure - Note 3 - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details-parentheticals" roleURI="http://www.descartes.com/20210131/role/statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details-parentheticals">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">052 - Disclosure - Note 3 - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details) (Parentheticals)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-3-acquisitions-acquired-intangible-assets-useful-lives-details" roleURI="http://www.descartes.com/20210131/role/statement-note-3-acquisitions-acquired-intangible-assets-useful-lives-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">053 - Disclosure - Note 3 - Acquisitions - Acquired Intangible Assets Useful Lives (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-3-acquisitions-pro-forma-results-of-operations-details" roleURI="http://www.descartes.com/20210131/role/statement-note-3-acquisitions-pro-forma-results-of-operations-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">054 - Disclosure - Note 3 - Acquisitions - Pro Forma Results of Operations (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-4-fair-value-measurements-details-textual" roleURI="http://www.descartes.com/20210131/role/statement-note-4-fair-value-measurements-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">055 - Disclosure - Note 4 - Fair Value Measurements (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-4-fair-value-measurements-derivative-instruments-at-fair-value-details" roleURI="http://www.descartes.com/20210131/role/statement-note-4-fair-value-measurements-derivative-instruments-at-fair-value-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">056 - Disclosure - Note 4 - Fair Value Measurements - Derivative Instruments at Fair Value (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-5-trade-accounts-receivable-details-textual" roleURI="http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">057 - Disclosure - Note 5 - Trade Accounts Receivable (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-5-trade-accounts-receivable-trade-receivables-details" roleURI="http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable-trade-receivables-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">058 - Disclosure - Note 5 - Trade Accounts Receivable - Trade Receivables (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-5-trade-accounts-receivable-provision-for-credit-losses-details" roleURI="http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable-provision-for-credit-losses-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">059 - Disclosure - Note 5 - Trade Accounts Receivable - Provision for Credit Losses (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-6-other-receivables-details-textual" roleURI="http://www.descartes.com/20210131/role/statement-note-6-other-receivables-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">060 - Disclosure - Note 6 - Other Receivables (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-6-other-receivables-other-receivables-details" roleURI="http://www.descartes.com/20210131/role/statement-note-6-other-receivables-other-receivables-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">061 - Disclosure - Note 6 - Other Receivables - Other Receivables (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-7-inventory-details-textual" roleURI="http://www.descartes.com/20210131/role/statement-note-7-inventory-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">062 - Disclosure - Note 7 - Inventory (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-8-property-and-equipment-property-and-equipment-details" roleURI="http://www.descartes.com/20210131/role/statement-note-8-property-and-equipment-property-and-equipment-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">063 - Disclosure - Note 8 - Property and Equipment - Property and Equipment (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-9-intangible-assets-details-textual" roleURI="http://www.descartes.com/20210131/role/statement-note-9-intangible-assets-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">064 - Disclosure - Note 9 - Intangible Assets (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-9-intangible-assets-intangible-assets-details" roleURI="http://www.descartes.com/20210131/role/statement-note-9-intangible-assets-intangible-assets-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">065 - Disclosure - Note 9 - Intangible Assets - Intangible Assets (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-10-goodwill-goodwill-details" roleURI="http://www.descartes.com/20210131/role/statement-note-10-goodwill-goodwill-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">066 - Disclosure - Note 10 - Goodwill - Goodwill (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-11-accrued-liabilities-accrued-liabilities-details" roleURI="http://www.descartes.com/20210131/role/statement-note-11-accrued-liabilities-accrued-liabilities-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">067 - Disclosure - Note 11 - Accrued Liabilities - Accrued Liabilities (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-12-longterm-debt-details-textual" roleURI="http://www.descartes.com/20210131/role/statement-note-12-longterm-debt-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">068 - Disclosure - Note 12 - Long-term Debt (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-13-leases-details-textual" roleURI="http://www.descartes.com/20210131/role/statement-note-13-leases-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">069 - Disclosure - Note 13 - Leases (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-13-leases-components-of-operating-lease-expense-details" roleURI="http://www.descartes.com/20210131/role/statement-note-13-leases-components-of-operating-lease-expense-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">070 - Disclosure - Note 13 - Leases - Components of Operating Lease Expense (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-13-leases-maturities-of-operating-lease-liabilities-details" roleURI="http://www.descartes.com/20210131/role/statement-note-13-leases-maturities-of-operating-lease-liabilities-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">071 - Disclosure - Note 13 - Leases - Maturities of Operating Lease Liabilities (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-14-commitments-contingencies-and-guarantees-details-textual" roleURI="http://www.descartes.com/20210131/role/statement-note-14-commitments-contingencies-and-guarantees-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">072 - Disclosure - Note 14 - Commitments, Contingencies and Guarantees (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-15-share-capital-details-textual" roleURI="http://www.descartes.com/20210131/role/statement-note-15-share-capital-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">073 - Disclosure - Note 15 - Share Capital (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-15-share-capital-common-shares-outstanding-details" roleURI="http://www.descartes.com/20210131/role/statement-note-15-share-capital-common-shares-outstanding-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">074 - Disclosure - Note 15 - Share Capital - Common Shares Outstanding (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-16-earnings-per-share-details-textual" roleURI="http://www.descartes.com/20210131/role/statement-note-16-earnings-per-share-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">075 - Disclosure - Note 16 - Earnings Per Share (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-16-earnings-per-share-computation-of-basic-and-diluted-earnings-per-share-details" roleURI="http://www.descartes.com/20210131/role/statement-note-16-earnings-per-share-computation-of-basic-and-diluted-earnings-per-share-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">076 - Disclosure - Note 16 - Earnings Per Share - Computation of Basic and Diluted Earnings Per Share (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-17-stockbased-compensation-plans-details-textual" roleURI="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">077 - Disclosure - Note 17 - Stock-based Compensation Plans (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-17-stockbased-compensation-plans-total-estimated-stockbased-compensation-expense-details" roleURI="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-total-estimated-stockbased-compensation-expense-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">078 - Disclosure - Note 17 - Stock-based Compensation Plans - Total Estimated Stock-based Compensation Expense (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-17-stockbased-compensation-plans-assumptions-used-in-blackscholes-model-for-each-grant-details" roleURI="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-assumptions-used-in-blackscholes-model-for-each-grant-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">079 - Disclosure - Note 17 - Stock-based Compensation Plans - Assumptions Used in Black-scholes Model for Each Grant (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-17-stockbased-compensation-plans-summary-of-option-activity-details" roleURI="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-summary-of-option-activity-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">080 - Disclosure - Note 17 - Stock-based Compensation Plans - Summary of Option Activity (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-17-stockbased-compensation-plans-options-outstanding-and-options-exercisable-details" roleURI="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-options-outstanding-and-options-exercisable-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">081 - Disclosure - Note 17 - Stock-based Compensation Plans - Options Outstanding and Options Exercisable (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-17-stockbased-compensation-plans-summary-of-nonvested-share-details" roleURI="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-summary-of-nonvested-share-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">082 - Disclosure - Note 17 - Stock-based Compensation Plans - Summary of Nonvested Share (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-17-stockbased-compensation-plans-summary-of-performance-share-units-activity-details" roleURI="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-summary-of-performance-share-units-activity-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">083 - Disclosure - Note 17 - Stock-based Compensation Plans Summary of Performance Share Units Activity (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-17-stockbased-compensation-plans-summary-of-restricted-share-units-activity-details" roleURI="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-summary-of-restricted-share-units-activity-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">084 - Disclosure - Note 17 - Stock-based Compensation Plans - Summary of Restricted Share Units Activity (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-17-stockbased-compensation-plans-summary-of-crsu-plan-activity-details" roleURI="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-summary-of-crsu-plan-activity-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">085 - Disclosure - Note 17 - Stock-based Compensation Plans - Summary of CRSU Plan Activity (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-18-income-taxes-details-textual" roleURI="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">086 - Disclosure - Note 18 - Income Taxes (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-18-income-taxes-income-loss-before-income-taxes-earned-by-tax-jurisdictions-details" roleURI="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-income-loss-before-income-taxes-earned-by-tax-jurisdictions-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">087 - Disclosure - Note 18 - Income Taxes - Income (Loss) Before Income Taxes Earned by Tax Jurisdictions (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-18-income-taxes-income-tax-expense-recovery-incurred-by-jurisdictions-details" roleURI="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-income-tax-expense-recovery-incurred-by-jurisdictions-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">088 - Disclosure - Note 18 - Income Taxes - Income Tax Expense (Recovery) Incurred by Jurisdictions (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-18-income-taxes-components-of-deferred-income-tax-assets-and-liabilities-details" roleURI="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-components-of-deferred-income-tax-assets-and-liabilities-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">089 - Disclosure - Note 18 - Income Taxes - Components of Deferred Income Tax Assets and Liabilities (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-18-income-taxes-provision-recovery-for-income-taxes-from-the-expected-provision-at-the-statutory-rates-details" roleURI="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-provision-recovery-for-income-taxes-from-the-expected-provision-at-the-statutory-rates-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">090 - Disclosure - Note 18 - Income Taxes - Provision (Recovery) for Income Taxes from the Expected Provision at the Statutory Rates (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-18-income-taxes-income-tax-loss-carryforwards-expiration-dates-details" roleURI="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-income-tax-loss-carryforwards-expiration-dates-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">091 - Disclosure - Note 18 - Income Taxes - Income Tax Loss Carryforwards Expiration Dates (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-18-income-taxes-reconciliation-of-the-total-estimated-liability-associated-with-uncertain-tax-provisions-details" roleURI="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-reconciliation-of-the-total-estimated-liability-associated-with-uncertain-tax-provisions-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">092 - Disclosure - Note 18 - Income Taxes - Reconciliation of the Total Estimated Liability Associated With Uncertain Tax Provisions (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-19-contract-balances-performance-obligations-and-contract-costs-1-details-textual" roleURI="http://www.descartes.com/20210131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs-1-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">093 - Disclosure - Note 19 - Contract Balances, Performance Obligations and Contract Costs 1 (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-19-contract-balances-performance-obligations-and-contract-costs-2-details-textual" roleURI="http://www.descartes.com/20210131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs-2-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">094 - Disclosure - Note 19 - Contract Balances, Performance Obligations and Contract Costs 2 (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-19-contract-balances-performance-obligations-and-contract-costs-changes-in-deferred-revenue-and-contract-assets-details" roleURI="http://www.descartes.com/20210131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs-changes-in-deferred-revenue-and-contract-assets-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">095 - Disclosure - Note 19 - Contract Balances, Performance Obligations and Contract Costs - Changes in Deferred Revenue and Contract Assets (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-20-other-charges-details-textual" roleURI="http://www.descartes.com/20210131/role/statement-note-20-other-charges-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">096 - Disclosure - Note 20 - Other Charges (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-20-other-charges-other-charges-included-in-consolidated-statements-of-operations-details" roleURI="http://www.descartes.com/20210131/role/statement-note-20-other-charges-other-charges-included-in-consolidated-statements-of-operations-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">097 - Disclosure - Note 20 - Other Charges - Other Charges Included in Consolidated Statements of Operations (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-20-other-charges-restructuring-provision-details" roleURI="http://www.descartes.com/20210131/role/statement-note-20-other-charges-restructuring-provision-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">098 - Disclosure - Note 20 - Other Charges - Restructuring Provision (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-21-supplemental-cash-flow-information-cash-flow-changes-in-operating-asset-and-liabilities-details" roleURI="http://www.descartes.com/20210131/role/statement-note-21-supplemental-cash-flow-information-cash-flow-changes-in-operating-asset-and-liabilities-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">099 - Disclosure - Note 21 - Supplemental Cash Flow Information - Cash Flow Changes in Operating Asset and Liabilities (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-22-segmented-information-details-textual" roleURI="http://www.descartes.com/20210131/role/statement-note-22-segmented-information-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">100 - Disclosure - Note 22 - Segmented Information (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-22-segmented-information-segmented-revenue-by-geographical-location-of-customer-details" roleURI="http://www.descartes.com/20210131/role/statement-note-22-segmented-information-segmented-revenue-by-geographical-location-of-customer-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">101 - Disclosure - Note 22 - Segmented Information - Segmented Revenue by Geographical Location of Customer (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-22-segmented-information-segmented-revenue-by-revenue-type-details" roleURI="http://www.descartes.com/20210131/role/statement-note-22-segmented-information-segmented-revenue-by-revenue-type-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">102 - Disclosure - Note 22 - Segmented Information - Segmented Revenue by Revenue Type (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-22-segmented-information-longlived-assets-by-geographical-location-details" roleURI="http://www.descartes.com/20210131/role/statement-note-22-segmented-information-longlived-assets-by-geographical-location-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">103 - Disclosure - Note 22 - Segmented Information - Long-lived Assets by Geographical Location (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-23-subsequent-event-details-textual" roleURI="http://www.descartes.com/20210131/role/statement-note-23-subsequent-event-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">104 - Disclosure - Note 23 - Subsequent Event (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
    </xsd:appinfo>
  </xsd:annotation>
  <xsd:element id="dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange" name="AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_AfterTaxYear2026Member" name="AfterTaxYear2026Member" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_AljexSoftwareIncMember" name="AljexSoftwareIncMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_AmountsRecoverableFromFundsHeldInEscrow" name="AmountsRecoverableFromFundsHeldInEscrow" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant"/>
  <xsd:element abstract="true" id="dsgx_AsiaPacificIncomeTaxAuthorityMember" name="AsiaPacificIncomeTaxAuthorityMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_BaseAnnualFeePercent" name="BaseAnnualFeePercent" nillable="true" substitutionGroup="xbrli:item" type="num:percentItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_BesttransportMember" name="BesttransportMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" name="BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_BusinessCombinationConsiderationTransferredPayable" name="BusinessCombinationConsiderationTransferredPayable" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" name="BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" nillable="true" substitutionGroup="xbrli:item" type="xbrli:durationItemType" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" name="BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="instant"/>
  <xsd:element id="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant"/>
  <xsd:element id="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" name="BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant"/>
  <xsd:element abstract="true" id="dsgx_COREKontainersAndShipTrackMember" name="COREKontainersAndShipTrackMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_CRSUAwardNonvestedNumber" name="CRSUAwardNonvestedNumber" nillable="true" substitutionGroup="xbrli:item" type="xbrli:sharesItemType" xbrli:periodType="instant"/>
  <xsd:element id="dsgx_CRSUAwardNonvestedWeightedAverageContractualLife" name="CRSUAwardNonvestedWeightedAverageContractualLife" nillable="true" substitutionGroup="xbrli:item" type="xbrli:durationItemType" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_CRSUAwardsForfeitedInPeriod" name="CRSUAwardsForfeitedInPeriod" nillable="true" substitutionGroup="xbrli:item" type="xbrli:sharesItemType" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_CRSUAwardsGrantsInPeriod" name="CRSUAwardsGrantsInPeriod" nillable="true" substitutionGroup="xbrli:item" type="xbrli:sharesItemType" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_CRSUAwardsOutstandingNumber" name="CRSUAwardsOutstandingNumber" nillable="true" substitutionGroup="xbrli:item" type="xbrli:sharesItemType" xbrli:periodType="instant"/>
  <xsd:element id="dsgx_CRSUAwardsVestedAndSettledInCash" name="CRSUAwardsVestedAndSettledInCash" nillable="true" substitutionGroup="xbrli:item" type="xbrli:sharesItemType" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_CRSUAwardsWeightedAverageContractualLife" name="CRSUAwardsWeightedAverageContractualLife" nillable="true" substitutionGroup="xbrli:item" type="xbrli:durationItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_CanadaOrUsPrimeRateBaOrLiborMember" name="CanadaOrUsPrimeRateBaOrLiborMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_CashSettledRestrictedShareUnitsCompensationExpense" name="CashSettledRestrictedShareUnitsCompensationExpense" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized" name="CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_CashSettledRestrictedShareUnitsVestingPeriod" name="CashSettledRestrictedShareUnitsVestingPeriod" nillable="true" substitutionGroup="xbrli:item" type="xbrli:durationItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_CashsettledRestrictedSharePlanMember" name="CashsettledRestrictedSharePlanMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_CashsettledRestrictedShareUnitMember" name="CashsettledRestrictedShareUnitMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange" name="ContractWithCustomerAssetIncreaseDecreaseForForeignExchange" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet" name="ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606" name="ContractWithCustomerContractAssetBeforeAdoptionOfASC606" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant"/>
  <xsd:element id="dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange" name="ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue" name="ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_CoreTransportTechnologiesNzLimitedMember" name="CoreTransportTechnologiesNzLimitedMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals" name="CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals" nillable="true" substitutionGroup="xbrli:item" type="xbrli:durationItemType" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares" name="DeferredShareUnitLiabilityNumberOfCommonShares" nillable="true" substitutionGroup="xbrli:item" type="xbrli:sharesItemType" xbrli:periodType="instant"/>
  <xsd:element abstract="true" id="dsgx_DeferredShareUnitPlanMember" name="DeferredShareUnitPlanMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_DeferredShareUnitsCompensationExpense" name="DeferredShareUnitsCompensationExpense" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_DeferredShareUnitsGrantsInPeriod" name="DeferredShareUnitsGrantsInPeriod" nillable="true" substitutionGroup="xbrli:item" type="xbrli:sharesItemType" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized" name="DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_DeferredShareUnitsOutstandingNumber" name="DeferredShareUnitsOutstandingNumber" nillable="true" substitutionGroup="xbrli:item" type="xbrli:sharesItemType" xbrli:periodType="instant"/>
  <xsd:element id="dsgx_DeferredShareUnitsRedeemedAndSettledInCash" name="DeferredShareUnitsRedeemedAndSettledInCash" nillable="true" substitutionGroup="xbrli:item" type="xbrli:sharesItemType" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_DeferredTaxAssetsCorporateMinimumTaxes" name="DeferredTaxAssetsCorporateMinimumTaxes" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant"/>
  <xsd:element id="dsgx_DeferredTaxAssetsLiabilitesNet1" name="DeferredTaxAssetsLiabilitesNet1" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant"/>
  <xsd:element id="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance" name="DeferredTaxAssetsNetBeforeValuationAllowance" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant"/>
  <xsd:element id="dsgx_DeferredTaxCharges" name="DeferredTaxCharges" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_DerivativeInstrumentCommonSharesHeldPerShare" name="DerivativeInstrumentCommonSharesHeldPerShare" nillable="true" substitutionGroup="xbrli:item" type="num:perShareItemType" xbrli:periodType="instant"/>
  <xsd:element id="dsgx_DerivativeInstrumentSharesOfCommonStockHeld" name="DerivativeInstrumentSharesOfCommonStockHeld" nillable="true" substitutionGroup="xbrli:item" type="xbrli:sharesItemType" xbrli:periodType="instant"/>
  <xsd:element abstract="true" id="dsgx_DirectorsAndOfficersMember" name="DirectorsAndOfficersMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_DocumentAndEntityInformation" name="DocumentAndEntityInformation" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions" name="EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_EmeaIncomeTaxAuthorityMember" name="EmeaIncomeTaxAuthorityMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_EquipmentInstalledWithCustomersMember" name="EquipmentInstalledWithCustomersMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_ExistingTechnologyMember" name="ExistingTechnologyMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_Fiscal2021RestructuringPlanMember" name="Fiscal2021RestructuringPlanMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_IncomeBeforeTaxesPercent" name="IncomeBeforeTaxesPercent" nillable="true" substitutionGroup="xbrli:item" type="num:percentItemType" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities" name="IncreaseDecreaseInOperatingLeaseLiabilities" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_KontainersMember" name="KontainersMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember" name="LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions" name="NetWorkingCapitalAdjustmentsReceivableFromAcquisitions" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant"/>
  <xsd:element abstract="true" id="dsgx_NoteToFinancialStatementDetailsTextual" name="NoteToFinancialStatementDetailsTextual" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_NotesToFinancialStatements" name="NotesToFinancialStatements" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_NotesToFinancialStatementsAbstract" name="NotesToFinancialStatementsAbstract" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_OtherCountriesMember" name="OtherCountriesMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_OtherReceivablesTableTextBlock" name="OtherReceivablesTableTextBlock" nillable="true" substitutionGroup="xbrli:item" type="nonnum:textBlockItemType" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_OtherReceivablesTextBlock" name="OtherReceivablesTextBlock" nillable="true" substitutionGroup="xbrli:item" type="nonnum:textBlockItemType" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_OverallotmentOption" name="OverallotmentOption" nillable="true" substitutionGroup="xbrli:item" type="num:percentItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_PSUsAndRSUsMember" name="PSUsAndRSUsMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_PeoplevoxMember" name="PeoplevoxMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_PinPointMember" name="PinPointMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_ProceedsFromIssuanceOfCommonStockNet" name="ProceedsFromIssuanceOfCommonStockNet" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_ProfessionalServicesAndOtherMember" name="ProfessionalServicesAndOtherMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_Range1Member" name="Range1Member" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_Range2Member" name="Range2Member" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_Range3Member" name="Range3Member" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_Range4Member" name="Range4Member" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_RevolvingOperatingCreditFacilityMember" name="RevolvingOperatingCreditFacilityMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock" name="ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock" nillable="true" substitutionGroup="xbrli:item" type="nonnum:textBlockItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_SeniorSecuredCreditFacilityMember" name="SeniorSecuredCreditFacilityMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant"/>
  <xsd:element id="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" nillable="true" substitutionGroup="xbrli:item" type="xbrli:sharesItemType" xbrli:periodType="instant"/>
  <xsd:element id="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" nillable="true" substitutionGroup="xbrli:item" type="num:perShareItemType" xbrli:periodType="instant"/>
  <xsd:element id="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" nillable="true" substitutionGroup="xbrli:item" type="xbrli:durationItemType" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" nillable="true" substitutionGroup="xbrli:item" type="num:perShareItemType" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_ShareCapitalTextBlock" name="ShareCapitalTextBlock" nillable="true" substitutionGroup="xbrli:item" type="nonnum:textBlockItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_ShareholderapprovedStockOptionPlanMember" name="ShareholderapprovedStockOptionPlanMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_ShelfProspectusMaximumAmount" name="ShelfProspectusMaximumAmount" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="instant"/>
  <xsd:element abstract="true" id="dsgx_ShelfProspectusMember" name="ShelfProspectusMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_ShelfProspectusPeriod" name="ShelfProspectusPeriod" nillable="true" substitutionGroup="xbrli:item" type="xbrli:durationItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_ShipTrackMember" name="ShipTrackMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_StepcomMember" name="StepcomMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised" name="StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised" nillable="true" substitutionGroup="xbrli:item" type="xbrli:sharesItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_StockOptionsTreasuryStockMethodMember" name="StockOptionsTreasuryStockMethodMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_TaxYear2022Member" name="TaxYear2022Member" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_TaxYear2023Member" name="TaxYear2023Member" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_TaxYear2024Member" name="TaxYear2024Member" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_TaxYear2025Member" name="TaxYear2025Member" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_TaxYear2026Member" name="TaxYear2026Member" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_The2019AcquisitionsMember" name="The2019AcquisitionsMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_The2020AcquisitionsMember" name="The2020AcquisitionsMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_The2020BaseShelfProspectusMember" name="The2020BaseShelfProspectusMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_The2021AcquisitionsMember" name="The2021AcquisitionsMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_TheAccountingStandardsUpdate201616Member" name="TheAccountingStandardsUpdate201616Member" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_VelocityMailMember" name="VelocityMailMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_VisualComplianceMember" name="VisualComplianceMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_VitaDexSolutionsLLCMember" name="VitaDexSolutionsLLCMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember" name="VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement--note-8-property-and-equipment-tables" name="statement-statement--note-8-property-and-equipment-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-10-goodwill-goodwill-details" name="statement-statement-note-10-goodwill-goodwill-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-10-goodwill-tables" name="statement-statement-note-10-goodwill-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-11-accrued-liabilities-accrued-liabilities-details" name="statement-statement-note-11-accrued-liabilities-accrued-liabilities-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-11-accrued-liabilities-tables" name="statement-statement-note-11-accrued-liabilities-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-13-leases-components-of-operating-lease-expense-details" name="statement-statement-note-13-leases-components-of-operating-lease-expense-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-13-leases-maturities-of-operating-lease-liabilities-details" name="statement-statement-note-13-leases-maturities-of-operating-lease-liabilities-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-13-leases-tables" name="statement-statement-note-13-leases-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-15-share-capital-common-shares-outstanding-details" name="statement-statement-note-15-share-capital-common-shares-outstanding-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-15-share-capital-tables" name="statement-statement-note-15-share-capital-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-16-earnings-per-share-computation-of-basic-and-diluted-earnings-per-share-details" name="statement-statement-note-16-earnings-per-share-computation-of-basic-and-diluted-earnings-per-share-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-16-earnings-per-share-tables" name="statement-statement-note-16-earnings-per-share-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-17-stockbased-compensation-plans-assumptions-used-in-blackscholes-model-for-each-grant-details" name="statement-statement-note-17-stockbased-compensation-plans-assumptions-used-in-blackscholes-model-for-each-grant-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-17-stockbased-compensation-plans-options-outstanding-and-options-exercisable-details" name="statement-statement-note-17-stockbased-compensation-plans-options-outstanding-and-options-exercisable-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-crsu-plan-activity-details" name="statement-statement-note-17-stockbased-compensation-plans-summary-of-crsu-plan-activity-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-nonvested-share-details" name="statement-statement-note-17-stockbased-compensation-plans-summary-of-nonvested-share-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-option-activity-details" name="statement-statement-note-17-stockbased-compensation-plans-summary-of-option-activity-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-performance-share-units-activity-details" name="statement-statement-note-17-stockbased-compensation-plans-summary-of-performance-share-units-activity-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-restricted-share-units-activity-details" name="statement-statement-note-17-stockbased-compensation-plans-summary-of-restricted-share-units-activity-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-17-stockbased-compensation-plans-tables" name="statement-statement-note-17-stockbased-compensation-plans-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-17-stockbased-compensation-plans-total-estimated-stockbased-compensation-expense-details" name="statement-statement-note-17-stockbased-compensation-plans-total-estimated-stockbased-compensation-expense-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-18-income-taxes-components-of-deferred-income-tax-assets-and-liabilities-details" name="statement-statement-note-18-income-taxes-components-of-deferred-income-tax-assets-and-liabilities-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-18-income-taxes-income-loss-before-income-taxes-earned-by-tax-jurisdictions-details" name="statement-statement-note-18-income-taxes-income-loss-before-income-taxes-earned-by-tax-jurisdictions-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-18-income-taxes-income-tax-expense-recovery-incurred-by-jurisdictions-details" name="statement-statement-note-18-income-taxes-income-tax-expense-recovery-incurred-by-jurisdictions-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-18-income-taxes-income-tax-loss-carryforwards-expiration-dates-details" name="statement-statement-note-18-income-taxes-income-tax-loss-carryforwards-expiration-dates-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-18-income-taxes-provision-recovery-for-income-taxes-from-the-expected-provision-at-the-statutory-rates-details" name="statement-statement-note-18-income-taxes-provision-recovery-for-income-taxes-from-the-expected-provision-at-the-statutory-rates-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-18-income-taxes-reconciliation-of-the-total-estimated-liability-associated-with-uncertain-tax-provisions-details" name="statement-statement-note-18-income-taxes-reconciliation-of-the-total-estimated-liability-associated-with-uncertain-tax-provisions-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-18-income-taxes-tables" name="statement-statement-note-18-income-taxes-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-19-contract-balances-performance-obligations-and-contract-costs-changes-in-deferred-revenue-and-contract-assets-details" name="statement-statement-note-19-contract-balances-performance-obligations-and-contract-costs-changes-in-deferred-revenue-and-contract-assets-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-19-contract-balances-performance-obligations-and-contract-costs-tables" name="statement-statement-note-19-contract-balances-performance-obligations-and-contract-costs-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-20-other-charges-other-charges-included-in-consolidated-statements-of-operations-details" name="statement-statement-note-20-other-charges-other-charges-included-in-consolidated-statements-of-operations-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-20-other-charges-restructuring-provision-details" name="statement-statement-note-20-other-charges-restructuring-provision-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-20-other-charges-tables" name="statement-statement-note-20-other-charges-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-21-supplemental-cash-flow-information-cash-flow-changes-in-operating-asset-and-liabilities-details" name="statement-statement-note-21-supplemental-cash-flow-information-cash-flow-changes-in-operating-asset-and-liabilities-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-21-supplemental-cash-flow-information-tables" name="statement-statement-note-21-supplemental-cash-flow-information-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-22-segmented-information-longlived-assets-by-geographical-location-details" name="statement-statement-note-22-segmented-information-longlived-assets-by-geographical-location-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-22-segmented-information-segmented-revenue-by-geographical-location-of-customer-details" name="statement-statement-note-22-segmented-information-segmented-revenue-by-geographical-location-of-customer-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-22-segmented-information-segmented-revenue-by-revenue-type-details" name="statement-statement-note-22-segmented-information-segmented-revenue-by-revenue-type-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-22-segmented-information-tables" name="statement-statement-note-22-segmented-information-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-3-acquisitions-acquired-intangible-assets-useful-lives-details" name="statement-statement-note-3-acquisitions-acquired-intangible-assets-useful-lives-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details" name="statement-statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details-parentheticals" name="statement-statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details-parentheticals" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-3-acquisitions-pro-forma-results-of-operations-details" name="statement-statement-note-3-acquisitions-pro-forma-results-of-operations-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-3-acquisitions-tables" name="statement-statement-note-3-acquisitions-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-4-fair-value-measurements-derivative-instruments-at-fair-value-details" name="statement-statement-note-4-fair-value-measurements-derivative-instruments-at-fair-value-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-4-fair-value-measurements-tables" name="statement-statement-note-4-fair-value-measurements-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-5-trade-accounts-receivable-provision-for-credit-losses-details" name="statement-statement-note-5-trade-accounts-receivable-provision-for-credit-losses-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-5-trade-accounts-receivable-tables" name="statement-statement-note-5-trade-accounts-receivable-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-5-trade-accounts-receivable-trade-receivables-details" name="statement-statement-note-5-trade-accounts-receivable-trade-receivables-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-6-other-receivables-other-receivables-details" name="statement-statement-note-6-other-receivables-other-receivables-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-6-other-receivables-tables" name="statement-statement-note-6-other-receivables-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-8-property-and-equipment-property-and-equipment-details" name="statement-statement-note-8-property-and-equipment-property-and-equipment-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-9-intangible-assets-intangible-assets-details" name="statement-statement-note-9-intangible-assets-intangible-assets-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-note-9-intangible-assets-tables" name="statement-statement-note-9-intangible-assets-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="dsgx_statement-statement-significant-accounting-policies-policies" name="statement-statement-significant-accounting-policies-policies" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
</xsd:schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.CAL
<SEQUENCE>9
<FILENAME>dsgx-20210131_cal.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION CALCULATION LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!--Generated by ThunderDome XBRL - 01:19AM UTC 2021-03-23--><link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xlink="http://www.w3.org/1999/xlink" 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">
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-13-leases-components-of-operating-lease-expense-details" xlink:href="dsgx-20210131.xsd#statement-note-13-leases-components-of-operating-lease-expense-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-13-leases-components-of-operating-lease-expense-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LeaseCost" xlink:label="us-gaap_LeaseCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseCost" xlink:label="us-gaap_OperatingLeaseCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShortTermLeaseCost" xlink:label="us-gaap_ShortTermLeaseCost" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LeaseCost" xlink:to="us-gaap_OperatingLeaseCost" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LeaseCost" xlink:to="us-gaap_ShortTermLeaseCost" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-13-leases-maturities-of-operating-lease-liabilities-details" xlink:href="dsgx-20210131.xsd#statement-note-13-leases-maturities-of-operating-lease-liabilities-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-13-leases-maturities-of-operating-lease-liabilities-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="arc"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-consolidated-statements-of-cash-flows" xlink:href="dsgx-20210131.xsd#statement-consolidated-statements-of-cash-flows" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.descartes.com/20210131/role/statement-consolidated-statements-of-cash-flows" xlink:type="extended">
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredTaxCharges" xlink:label="dsgx_DeferredTaxCharges" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Depreciation" xlink:label="us-gaap_Depreciation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInOperatingCapital" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNoncashIncomeExpense" xlink:label="us-gaap_OtherNoncashIncomeExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsOfDebtIssuanceCosts" xlink:label="us-gaap_PaymentsOfDebtIssuanceCosts" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:label="us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromLinesOfCredit" xlink:label="us-gaap_ProceedsFromLinesOfCredit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RepaymentsOfDebt" xlink:label="us-gaap_RepaymentsOfDebt" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation" xlink:type="locator"/>
    <link:calculationArc order="0" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_AmortizationOfIntangibleAssets" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_Depreciation" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="dsgx_DeferredTaxCharges" xlink:type="arc"/>
    <link:calculationArc order="5" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_OtherNoncashIncomeExpense" xlink:type="arc"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_ShareBasedCompensation" xlink:type="arc"/>
    <link:calculationArc order="0" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:type="arc"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_ProceedsFromLinesOfCredit" xlink:type="arc"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_RepaymentsOfDebt" xlink:type="arc"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:type="arc"/>
    <link:calculationArc order="4" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_PaymentsOfDebtIssuanceCosts" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable-trade-receivables-details" xlink:href="dsgx-20210131.xsd#statement-note-5-trade-accounts-receivable-trade-receivables-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable-trade-receivables-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsReceivableGrossCurrent" xlink:label="us-gaap_AccountsReceivableGrossCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccountsReceivableNetCurrent" xlink:to="us-gaap_AccountsReceivableGrossCurrent" xlink:type="arc"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccountsReceivableNetCurrent" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-6-other-receivables-other-receivables-details" xlink:href="dsgx-20210131.xsd#statement-note-6-other-receivables-other-receivables-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-6-other-receivables-other-receivables-details" xlink:type="extended">
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions" xlink:label="dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherAssetsCurrent" xlink:label="us-gaap_OtherAssetsCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherReceivablesNetCurrent" xlink:label="us-gaap_OtherReceivablesNetCurrent" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OtherReceivablesNetCurrent" xlink:to="us-gaap_OtherAssetsCurrent" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OtherReceivablesNetCurrent" xlink:to="dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-11-accrued-liabilities-accrued-liabilities-details" xlink:href="dsgx-20210131.xsd#statement-note-11-accrued-liabilities-accrued-liabilities-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-11-accrued-liabilities-accrued-liabilities-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedProfessionalFeesCurrent" xlink:label="us-gaap_AccruedProfessionalFeesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="us-gaap_AccruedProfessionalFeesCurrent" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="us-gaap_OtherAccruedLiabilitiesCurrent" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-20-other-charges-other-charges-included-in-consolidated-statements-of-operations-details" xlink:href="dsgx-20210131.xsd#statement-note-20-other-charges-other-charges-included-in-consolidated-statements-of-operations-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-20-other-charges-other-charges-included-in-consolidated-statements-of-operations-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNonoperatingExpense" xlink:label="us-gaap_OtherNonoperatingExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringCharges" xlink:label="us-gaap_RestructuringCharges" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OtherNonoperatingExpense" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OtherNonoperatingExpense" xlink:to="us-gaap_RestructuringCharges" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OtherNonoperatingExpense" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-21-supplemental-cash-flow-information-cash-flow-changes-in-operating-asset-and-liabilities-details" xlink:href="dsgx-20210131.xsd#statement-note-21-supplemental-cash-flow-information-cash-flow-changes-in-operating-asset-and-liabilities-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-21-supplemental-cash-flow-information-cash-flow-changes-in-operating-asset-and-liabilities-details" xlink:type="extended">
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_IncreaseDecreaseInOperatingLeaseLiabilities" xlink:label="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInIncomeTaxes" xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxes" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInOperatingCapital" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInOtherReceivables" xlink:label="us-gaap_IncreaseDecreaseInOtherReceivables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInInventories" xlink:type="arc"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:type="arc"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:to="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:type="arc"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInOtherReceivables" xlink:type="arc"/>
    <link:calculationArc order="6" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInIncomeTaxes" xlink:type="arc"/>
    <link:calculationArc order="7" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:type="arc"/>
    <link:calculationArc order="8" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-consolidated-balance-sheets" xlink:href="dsgx-20210131.xsd#statement-consolidated-balance-sheets" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.descartes.com/20210131/role/statement-consolidated-balance-sheets" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedIncomeTaxesCurrent" xlink:label="us-gaap_AccruedIncomeTaxesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedIncomeTaxesNoncurrent" xlink:label="us-gaap_AccruedIncomeTaxesNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredRevenueNoncurrent" xlink:label="us-gaap_DeferredRevenueNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherReceivablesNetCurrent" xlink:label="us-gaap_OtherReceivablesNetCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_AccountsReceivableNetCurrent" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_OtherReceivablesNetCurrent" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_InventoryNet" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_DeferredIncomeTaxAssetsNet" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_AssetsCurrent" xlink:type="arc"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_OtherAssetsNoncurrent" xlink:type="arc"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_Goodwill" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_AccruedIncomeTaxesCurrent" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_AccountsPayableCurrent" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_AccruedLiabilitiesCurrent" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_LiabilitiesCurrent" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_DeferredRevenueNoncurrent" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_AccruedIncomeTaxesNoncurrent" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_LongTermDebtNoncurrent" xlink:type="arc"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_CommonStockValue" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_AdditionalPaidInCapitalCommonStock" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_Liabilities" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_StockholdersEquity" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-consolidated-statements-of-operations-" xlink:href="dsgx-20210131.xsd#statement-consolidated-statements-of-operations-" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.descartes.com/20210131/role/statement-consolidated-statements-of-operations-" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="us-gaap_GeneralAndAdministrativeExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InvestmentIncomeNet" xlink:label="us-gaap_InvestmentIncomeNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingExpenses" xlink:label="us-gaap_OperatingExpenses" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNonoperatingExpense" xlink:label="us-gaap_OtherNonoperatingExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="us-gaap_ResearchAndDevelopmentExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SellingAndMarketingExpense" xlink:label="us-gaap_SellingAndMarketingExpense" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="arc"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_CostOfGoodsAndServicesSold" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingExpenses" xlink:to="us-gaap_ResearchAndDevelopmentExpense" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingExpenses" xlink:to="us-gaap_GeneralAndAdministrativeExpense" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingExpenses" xlink:to="us-gaap_SellingAndMarketingExpense" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingExpenses" xlink:to="us-gaap_AmortizationOfIntangibleAssets" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingExpenses" xlink:to="us-gaap_OtherNonoperatingExpense" xlink:type="arc"/>
    <link:calculationArc order="0" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:to="us-gaap_InterestExpense" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:to="us-gaap_OperatingIncomeLoss" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:to="us-gaap_InvestmentIncomeNet" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:calculationArc order="0" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_IncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-8-property-and-equipment-property-and-equipment-details" xlink:href="dsgx-20210131.xsd#statement-note-8-property-and-equipment-property-and-equipment-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-8-property-and-equipment-property-and-equipment-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_PropertyPlantAndEquipmentNet" xlink:to="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="arc"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_PropertyPlantAndEquipmentNet" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-9-intangible-assets-intangible-assets-details" xlink:href="dsgx-20210131.xsd#statement-note-9-intangible-assets-intangible-assets-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-9-intangible-assets-intangible-assets-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:type="locator"/>
    <link:calculationArc order="0" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-components-of-deferred-income-tax-assets-and-liabilities-details" xlink:href="dsgx-20210131.xsd#statement-note-18-income-taxes-components-of-deferred-income-tax-assets-and-liabilities-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-components-of-deferred-income-tax-assets-and-liabilities-details" xlink:type="extended">
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredTaxAssetsCorporateMinimumTaxes" xlink:label="dsgx_DeferredTaxAssetsCorporateMinimumTaxes" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredTaxAssetsLiabilitesNet1" xlink:label="dsgx_DeferredTaxAssetsLiabilitesNet1" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredTaxAssetsNetBeforeValuationAllowance" xlink:label="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilities" xlink:label="us-gaap_DeferredIncomeTaxLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsGross" xlink:label="us-gaap_DeferredTaxAssetsGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:label="us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:label="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxLiabilitiesOther" xlink:label="us-gaap_DeferredTaxLiabilitiesOther" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross" xlink:to="us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross" xlink:to="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross" xlink:to="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross" xlink:to="dsgx_DeferredTaxAssetsCorporateMinimumTaxes" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredIncomeTaxLiabilities" xlink:to="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredIncomeTaxLiabilities" xlink:to="us-gaap_DeferredTaxLiabilitiesOther" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredIncomeTaxLiabilities" xlink:to="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance" xlink:to="us-gaap_DeferredTaxAssetsGross" xlink:type="arc"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance" xlink:to="us-gaap_DeferredIncomeTaxLiabilities" xlink:type="arc"/>
    <link:calculationArc order="0" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="dsgx_DeferredTaxAssetsLiabilitesNet1" xlink:to="us-gaap_DeferredTaxAssetsValuationAllowance" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="dsgx_DeferredTaxAssetsLiabilitesNet1" xlink:to="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-consolidated-statements-of-comprehensive-income" xlink:href="dsgx-20210131.xsd#statement-consolidated-statements-of-comprehensive-income" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.descartes.com/20210131/role/statement-consolidated-statements-of-comprehensive-income" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ComprehensiveIncomeNetOfTax" xlink:label="us-gaap_ComprehensiveIncomeNetOfTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTax" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OtherComprehensiveIncomeLossNetOfTax" xlink:to="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_ComprehensiveIncomeNetOfTax" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTax" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_ComprehensiveIncomeNetOfTax" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
  </link:calculationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.DEF
<SEQUENCE>10
<FILENAME>dsgx-20210131_def.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION DEFINITION LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!--Generated by ThunderDome XBRL - 01:19AM UTC 2021-03-23--><link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xlink="http://www.w3.org/1999/xlink" 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">
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/all" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#all" xlink:type="simple"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/domain-member" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#domain-member" xlink:type="simple"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-domain" xlink:type="simple"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#hypercube-dimension" xlink:type="simple"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-default" xlink:type="simple"/>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-21-supplemental-cash-flow-information" xlink:href="dsgx-20210131.xsd#statement-note-21-supplemental-cash-flow-information" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-21-supplemental-cash-flow-information" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:label="us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-11-accrued-liabilities" xlink:href="dsgx-20210131.xsd#statement-note-11-accrued-liabilities" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-11-accrued-liabilities" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:label="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-10-goodwill" xlink:href="dsgx-20210131.xsd#statement-note-10-goodwill" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-10-goodwill" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillDisclosureTextBlock" xlink:label="us-gaap_GoodwillDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_GoodwillDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement--note-8-property-and-equipment-" xlink:href="dsgx-20210131.xsd#statement--note-8-property-and-equipment-" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement--note-8-property-and-equipment-" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-1-description-of-the-business" xlink:href="dsgx-20210131.xsd#statement-note-1-description-of-the-business" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-1-description-of-the-business" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" xlink:label="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-document-and-entity-information" xlink:href="dsgx-20210131.xsd#statement-document-and-entity-information" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-document-and-entity-information" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_CurrentFiscalYearEndDate" xlink:label="dei_CurrentFiscalYearEndDate" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="dei_DocumentFiscalPeriodFocus" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentFiscalYearFocus" xlink:label="dei_DocumentFiscalYearFocus" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentInformationLineItems" xlink:label="dei_DocumentInformationLineItems" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentInformationTable" xlink:label="dei_DocumentInformationTable" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentType" xlink:label="dei_DocumentType" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="dei_EntityCommonStockSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCurrentReportingStatus" xlink:label="dei_EntityCurrentReportingStatus" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityFilerCategory" xlink:label="dei_EntityFilerCategory" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityInteractiveDataCurrent" xlink:label="dei_EntityInteractiveDataCurrent" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityShellCompany" xlink:label="dei_EntityShellCompany" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntitySmallBusiness" xlink:label="dei_EntitySmallBusiness" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityVoluntaryFilers" xlink:label="dei_EntityVoluntaryFilers" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityWellKnownSeasonedIssuer" xlink:label="dei_EntityWellKnownSeasonedIssuer" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="dei_DocumentInformationTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentInformationTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityRegistrantName" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityCentralIndexKey" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_CurrentFiscalYearEndDate" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityFilerCategory" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityCurrentReportingStatus" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityVoluntaryFilers" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityWellKnownSeasonedIssuer" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityEmergingGrowthCompany" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntitySmallBusiness" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityInteractiveDataCurrent" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityCommonStockSharesOutstanding" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityShellCompany" xlink:type="arc"/>
    <link:definitionArc order="13" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentType" xlink:type="arc"/>
    <link:definitionArc order="14" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentPeriodEndDate" xlink:type="arc"/>
    <link:definitionArc order="15" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentFiscalYearFocus" xlink:type="arc"/>
    <link:definitionArc order="16" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentFiscalPeriodFocus" xlink:type="arc"/>
    <link:definitionArc order="17" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_AmendmentFlag" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-consolidated-balance-sheets-parentheticals" xlink:href="dsgx-20210131.xsd#statement-consolidated-balance-sheets-parentheticals" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-consolidated-balance-sheets-parentheticals" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CommonStockSharesIssued" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CommonStockSharesOutstanding" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-consolidated-statements-of-comprehensive-income-parentheticals" xlink:href="dsgx-20210131.xsd#statement-consolidated-statements-of-comprehensive-income-parentheticals" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-consolidated-statements-of-comprehensive-income-parentheticals" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-2-basis-of-presentation" xlink:href="dsgx-20210131.xsd#statement-note-2-basis-of-presentation" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-2-basis-of-presentation" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CashsettledRestrictedSharePlanMember" xlink:label="dsgx_CashsettledRestrictedSharePlanMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredShareUnitPlanMember" xlink:label="dsgx_DeferredShareUnitPlanMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DirectorsAndOfficersMember" xlink:label="dsgx_DirectorsAndOfficersMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ExistingTechnologyMember" xlink:label="dsgx_ExistingTechnologyMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_TheAccountingStandardsUpdate201616Member" xlink:label="dsgx_TheAccountingStandardsUpdate201616Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_TitleOfIndividualAxis" xlink:label="srt_TitleOfIndividualAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingStandardsUpdate201409Member" xlink:label="us-gaap_AccountingStandardsUpdate201409Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingStandardsUpdate201602Member" xlink:label="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ComputerEquipmentMember" xlink:label="us-gaap_ComputerEquipmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquipmentMember" xlink:label="us-gaap_EquipmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FurnitureAndFixturesMember" xlink:label="us-gaap_FurnitureAndFixturesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SignificantAccountingPoliciesTextBlock" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember-default" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerRelationshipsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="dsgx_ExistingTechnologyMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TradeNamesMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_NoncompeteAgreementsMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_ComputerEquipmentMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_FurnitureAndFixturesMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_EquipmentMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_EmployeeStockOptionMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_TitleOfIndividualAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:to="dsgx_DirectorsAndOfficersMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualWithRelationshipToEntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_PerformanceSharesMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="dsgx_DeferredShareUnitPlanMember" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="dsgx_CashsettledRestrictedSharePlanMember" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TypeOfAdoptionMember" xlink:to="us-gaap_AccountingStandardsUpdate201409Member" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TypeOfAdoptionMember" xlink:to="dsgx_TheAccountingStandardsUpdate201616Member" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TypeOfAdoptionMember" xlink:to="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_SignificantAccountingPoliciesTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-3-acquisitions" xlink:href="dsgx-20210131.xsd#statement-note-3-acquisitions" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-3-acquisitions" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_AljexSoftwareIncMember" xlink:label="dsgx_AljexSoftwareIncMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BesttransportMember" xlink:label="dsgx_BesttransportMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_KontainersMember" xlink:label="dsgx_KontainersMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_PeoplevoxMember" xlink:label="dsgx_PeoplevoxMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_PinPointMember" xlink:label="dsgx_PinPointMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShipTrackMember" xlink:label="dsgx_ShipTrackMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_StepcomMember" xlink:label="dsgx_StepcomMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_The2021AcquisitionsMember" xlink:label="dsgx_The2021AcquisitionsMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VelocityMailMember" xlink:label="dsgx_VelocityMailMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationDisclosureTextBlock" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_PeoplevoxMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_KontainersMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_ShipTrackMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_The2021AcquisitionsMember" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_VisualComplianceMember" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_StepcomMember" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_BesttransportMember" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_AljexSoftwareIncMember" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_VelocityMailMember" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_PinPointMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_BusinessCombinationDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-4-fair-value-measurements" xlink:href="dsgx-20210131.xsd#statement-note-4-fair-value-measurements" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-4-fair-value-measurements" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueDisclosuresTextBlock" xlink:label="us-gaap_FairValueDisclosuresTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeStatementLocationAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_FairValueDisclosuresTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable" xlink:href="dsgx-20210131.xsd#statement-note-5-trade-accounts-receivable" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" xlink:label="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-6-other-receivables" xlink:href="dsgx-20210131.xsd#statement-note-6-other-receivables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-6-other-receivables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_OtherReceivablesTextBlock" xlink:label="dsgx_OtherReceivablesTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="dsgx_OtherReceivablesTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-7-inventory" xlink:href="dsgx-20210131.xsd#statement-note-7-inventory" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-7-inventory" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryDisclosureTextBlock" xlink:label="us-gaap_InventoryDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_InventoryDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-9-intangible-assets" xlink:href="dsgx-20210131.xsd#statement-note-9-intangible-assets" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-9-intangible-assets" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-12-longterm-debt" xlink:href="dsgx-20210131.xsd#statement-note-12-longterm-debt" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-12-longterm-debt" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CanadaOrUsPrimeRateBaOrLiborMember" xlink:label="dsgx_CanadaOrUsPrimeRateBaOrLiborMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember" xlink:label="dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_RevolvingOperatingCreditFacilityMember" xlink:label="dsgx_RevolvingOperatingCreditFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_SeniorSecuredCreditFacilityMember" xlink:label="dsgx_SeniorSecuredCreditFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtDisclosureTextBlock" xlink:label="us-gaap_DebtDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain-default" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_CreditFacilityAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="dsgx_RevolvingOperatingCreditFacilityMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DebtInstrumentAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="dsgx_SeniorSecuredCreditFacilityMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_VariableRateAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_VariableRateDomain" xlink:to="dsgx_CanadaOrUsPrimeRateBaOrLiborMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain-default" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="dsgx_SeniorSecuredCreditFacilityMember" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_DebtDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-13-leases" xlink:href="dsgx-20210131.xsd#statement-note-13-leases" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-13-leases" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeasesTextBlock" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_LesseeOperatingLeasesTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-14-commitments-contingencies-and-guarantees" xlink:href="dsgx-20210131.xsd#statement-note-14-commitments-contingencies-and-guarantees" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-14-commitments-contingencies-and-guarantees" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_COREKontainersAndShipTrackMember" xlink:label="dsgx_COREKontainersAndShipTrackMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_COREKontainersAndShipTrackMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-15-share-capital" xlink:href="dsgx-20210131.xsd#statement-note-15-share-capital" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-15-share-capital" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShareCapitalTextBlock" xlink:label="dsgx_ShareCapitalTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShelfProspectusMember" xlink:label="dsgx_ShelfProspectusMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_The2020BaseShelfProspectusMember" xlink:label="dsgx_The2020BaseShelfProspectusMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SaleOfStockNameOfTransactionDomain" xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SaleOfStockNameOfTransactionDomain" xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsidiarySaleOfStockAxis" xlink:label="us-gaap_SubsidiarySaleOfStockAxis" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_SubsidiarySaleOfStockAxis" xlink:to="us-gaap_SaleOfStockNameOfTransactionDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_SubsidiarySaleOfStockAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SaleOfStockNameOfTransactionDomain" xlink:to="dsgx_ShelfProspectusMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_SubsidiarySaleOfStockAxis" xlink:to="us-gaap_SaleOfStockNameOfTransactionDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SaleOfStockNameOfTransactionDomain" xlink:to="dsgx_The2020BaseShelfProspectusMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="dsgx_ShareCapitalTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-16-earnings-per-share" xlink:href="dsgx-20210131.xsd#statement-note-16-earnings-per-share" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-16-earnings-per-share" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_PSUsAndRSUsMember" xlink:label="dsgx_PSUsAndRSUsMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_StockOptionsTreasuryStockMethodMember" xlink:label="dsgx_StockOptionsTreasuryStockMethodMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="us-gaap_AntidilutiveSecuritiesNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="us-gaap_EarningsPerShareTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:to="us-gaap_EmployeeStockOptionMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="us-gaap_AntidilutiveSecuritiesNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:to="dsgx_StockOptionsTreasuryStockMethodMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:to="dsgx_PSUsAndRSUsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_EarningsPerShareTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans" xlink:href="dsgx-20210131.xsd#statement-note-17-stockbased-compensation-plans" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CashsettledRestrictedShareUnitMember" xlink:label="dsgx_CashsettledRestrictedShareUnitMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredShareUnitPlanMember" xlink:label="dsgx_DeferredShareUnitPlanMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShareholderapprovedStockOptionPlanMember" xlink:label="dsgx_ShareholderapprovedStockOptionPlanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PlanNameAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PlanNameDomain" xlink:to="dsgx_ShareholderapprovedStockOptionPlanMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_EmployeeStockOptionMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_PerformanceSharesMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PlanNameDomain" xlink:to="dsgx_DeferredShareUnitPlanMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PlanNameDomain" xlink:to="dsgx_CashsettledRestrictedShareUnitMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-18-income-taxes" xlink:href="dsgx-20210131.xsd#statement-note-18-income-taxes" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-18-income-taxes" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember" xlink:label="dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:label="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ChangeInAccountingPrincipleMember" xlink:label="us-gaap_ChangeInAccountingPrincipleMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ChangeInAccountingPrincipleMember" xlink:label="us-gaap_ChangeInAccountingPrincipleMember-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:to="us-gaap_ChangeInAccountingPrincipleMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ChangeInAccountingPrincipleMember" xlink:to="dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:to="us-gaap_ChangeInAccountingPrincipleMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs" xlink:href="dsgx-20210131.xsd#statement-note-19-contract-balances-performance-obligations-and-contract-costs" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-20-other-charges" xlink:href="dsgx-20210131.xsd#statement-note-20-other-charges" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-20-other-charges" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_Fiscal2021RestructuringPlanMember" xlink:label="dsgx_Fiscal2021RestructuringPlanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock" xlink:label="us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringPlanAxis" xlink:label="us-gaap_RestructuringPlanAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringPlanDomain" xlink:label="us-gaap_RestructuringPlanDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringPlanDomain" xlink:label="us-gaap_RestructuringPlanDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_RestructuringPlanAxis" xlink:to="us-gaap_RestructuringPlanDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_RestructuringPlanAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_RestructuringPlanDomain" xlink:to="dsgx_Fiscal2021RestructuringPlanMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_RestructuringPlanAxis" xlink:to="us-gaap_RestructuringPlanDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-22-segmented-information" xlink:href="dsgx-20210131.xsd#statement-note-22-segmented-information" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-22-segmented-information" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_SegmentReportingDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-23-subsequent-event-" xlink:href="dsgx-20210131.xsd#statement-note-23-subsequent-event-" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-23-subsequent-event-" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VitaDexSolutionsLLCMember" xlink:label="dsgx_VitaDexSolutionsLLCMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventsTextBlock" xlink:label="us-gaap_SubsequentEventsTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_SubsequentEventTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SubsequentEventTypeDomain" xlink:to="us-gaap_SubsequentEventMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_VitaDexSolutionsLLCMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_SubsequentEventsTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-significant-accounting-policies-policies" xlink:href="dsgx-20210131.xsd#statement-significant-accounting-policies-policies" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-significant-accounting-policies-policies" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:label="us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationsPolicy" xlink:label="us-gaap_BusinessCombinationsPolicy" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConsolidationPolicyTextBlock" xlink:label="us-gaap_ConsolidationPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerSharePolicyTextBlock" xlink:label="us-gaap_EarningsPerSharePolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:label="us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:label="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:label="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock" xlink:label="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxPolicyTextBlock" xlink:label="us-gaap_IncomeTaxPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryPolicyTextBlock" xlink:label="us-gaap_InventoryPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeLeasesPolicyTextBlock" xlink:label="us-gaap_LesseeLeasesPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PolicyTextBlockAbstract" xlink:label="us-gaap_PolicyTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:label="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xlink:label="us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UseOfEstimates" xlink:label="us-gaap_UseOfEstimates" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PolicyTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PolicyTextBlockAbstract" xlink:to="us-gaap_AccountingPoliciesAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ConsolidationPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_UseOfEstimates" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_InventoryPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_LesseeLeasesPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="13" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="14" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:type="arc"/>
    <link:definitionArc order="15" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_BusinessCombinationsPolicy" xlink:type="arc"/>
    <link:definitionArc order="16" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_IncomeTaxPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="17" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_EarningsPerSharePolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="18" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-3-acquisitions-tables" xlink:href="dsgx-20210131.xsd#statement-note-3-acquisitions-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-3-acquisitions-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:label="us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" xlink:label="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-4-fair-value-measurements-tables" xlink:href="dsgx-20210131.xsd#statement-note-4-fair-value-measurements-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-4-fair-value-measurements-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock" xlink:label="us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable-tables" xlink:href="dsgx-20210131.xsd#statement-note-5-trade-accounts-receivable-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:label="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xlink:label="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-6-other-receivables-tables" xlink:href="dsgx-20210131.xsd#statement-note-6-other-receivables-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-6-other-receivables-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_OtherReceivablesTableTextBlock" xlink:label="dsgx_OtherReceivablesTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="dsgx_OtherReceivablesTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement--note-8-property-and-equipment-tables" xlink:href="dsgx-20210131.xsd#statement--note-8-property-and-equipment-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement--note-8-property-and-equipment-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-9-intangible-assets-tables" xlink:href="dsgx-20210131.xsd#statement-note-9-intangible-assets-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-9-intangible-assets-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-10-goodwill-tables" xlink:href="dsgx-20210131.xsd#statement-note-10-goodwill-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-10-goodwill-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_ScheduleOfCondensedCashFlowStatementTableTextBlock" xlink:label="srt_ScheduleOfCondensedCashFlowStatementTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="srt_ScheduleOfCondensedCashFlowStatementTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-11-accrued-liabilities-tables" xlink:href="dsgx-20210131.xsd#statement-note-11-accrued-liabilities-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-11-accrued-liabilities-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-13-leases-tables" xlink:href="dsgx-20210131.xsd#statement-note-13-leases-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-13-leases-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LeaseCostTableTextBlock" xlink:label="us-gaap_LeaseCostTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_LeaseCostTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-15-share-capital-tables" xlink:href="dsgx-20210131.xsd#statement-note-15-share-capital-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-15-share-capital-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock" xlink:label="us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-16-earnings-per-share-tables" xlink:href="dsgx-20210131.xsd#statement-note-16-earnings-per-share-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-16-earnings-per-share-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-tables" xlink:href="dsgx-20210131.xsd#statement-note-17-stockbased-compensation-plans-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock" xlink:label="dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" xlink:label="us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-tables" xlink:href="dsgx-20210131.xsd#statement-note-18-income-taxes-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:label="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:label="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:label="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:label="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock" xlink:label="us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs-tables" xlink:href="dsgx-20210131.xsd#statement-note-19-contract-balances-performance-obligations-and-contract-costs-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-20-other-charges-tables" xlink:href="dsgx-20210131.xsd#statement-note-20-other-charges-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-20-other-charges-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock" xlink:label="us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" xlink:label="us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-21-supplemental-cash-flow-information-tables" xlink:href="dsgx-20210131.xsd#statement-note-21-supplemental-cash-flow-information-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-21-supplemental-cash-flow-information-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:label="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-22-segmented-information-tables" xlink:href="dsgx-20210131.xsd#statement-note-22-segmented-information-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-22-segmented-information-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" xlink:label="us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock" xlink:label="us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-2-basis-of-presentation-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-2-basis-of-presentation-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-2-basis-of-presentation-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BaseAnnualFeePercent" xlink:label="dsgx_BaseAnnualFeePercent" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CashSettledRestrictedShareUnitsVestingPeriod" xlink:label="dsgx_CashSettledRestrictedShareUnitsVestingPeriod" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CashsettledRestrictedSharePlanMember" xlink:label="dsgx_CashsettledRestrictedSharePlanMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals" xlink:label="dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredShareUnitPlanMember" xlink:label="dsgx_DeferredShareUnitPlanMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DirectorsAndOfficersMember" xlink:label="dsgx_DirectorsAndOfficersMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ExistingTechnologyMember" xlink:label="dsgx_ExistingTechnologyMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_TheAccountingStandardsUpdate201616Member" xlink:label="dsgx_TheAccountingStandardsUpdate201616Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_TitleOfIndividualAxis" xlink:label="srt_TitleOfIndividualAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingStandardsUpdate201409Member" xlink:label="us-gaap_AccountingStandardsUpdate201409Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingStandardsUpdate201602Member" xlink:label="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ComputerEquipmentMember" xlink:label="us-gaap_ComputerEquipmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerAssetNet" xlink:label="us-gaap_ContractWithCustomerAssetNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquipmentMember" xlink:label="us-gaap_EquipmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xlink:label="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FurnitureAndFixturesMember" xlink:label="us-gaap_FurnitureAndFixturesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillImpairmentLoss" xlink:label="us-gaap_GoodwillImpairmentLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember-default" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerRelationshipsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="dsgx_ExistingTechnologyMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TradeNamesMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_NoncompeteAgreementsMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_ComputerEquipmentMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_FurnitureAndFixturesMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_EquipmentMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_EmployeeStockOptionMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_TitleOfIndividualAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:to="dsgx_DirectorsAndOfficersMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualWithRelationshipToEntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_PerformanceSharesMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="dsgx_DeferredShareUnitPlanMember" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="dsgx_CashsettledRestrictedSharePlanMember" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TypeOfAdoptionMember" xlink:to="us-gaap_AccountingStandardsUpdate201409Member" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TypeOfAdoptionMember" xlink:to="dsgx_TheAccountingStandardsUpdate201616Member" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TypeOfAdoptionMember" xlink:to="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_GoodwillImpairmentLoss" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_BaseAnnualFeePercent" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CashSettledRestrictedShareUnitsVestingPeriod" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerAssetNet" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherAssetsNoncurrent" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:type="arc"/>
    <link:definitionArc order="13" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="arc"/>
    <link:definitionArc order="14" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseLiability" xlink:type="arc"/>
    <link:definitionArc order="15" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-3-acquisitions-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-3-acquisitions-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-3-acquisitions-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_AljexSoftwareIncMember" xlink:label="dsgx_AljexSoftwareIncMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BesttransportMember" xlink:label="dsgx_BesttransportMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" xlink:label="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_KontainersMember" xlink:label="dsgx_KontainersMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_PeoplevoxMember" xlink:label="dsgx_PeoplevoxMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_PinPointMember" xlink:label="dsgx_PinPointMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShipTrackMember" xlink:label="dsgx_ShipTrackMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_StepcomMember" xlink:label="dsgx_StepcomMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_The2021AcquisitionsMember" xlink:label="dsgx_The2021AcquisitionsMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VelocityMailMember" xlink:label="dsgx_VelocityMailMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" xlink:label="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationAcquiredReceivablesFairValue" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" xlink:label="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_PeoplevoxMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_KontainersMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_ShipTrackMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_The2021AcquisitionsMember" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_VisualComplianceMember" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_StepcomMember" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_BesttransportMember" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_AljexSoftwareIncMember" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_VelocityMailMember" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_PinPointMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationAcquiredReceivablesFairValue" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-4-fair-value-measurements-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-4-fair-value-measurements-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-4-fair-value-measurements-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DerivativeInstrumentCommonSharesHeldPerShare" xlink:label="dsgx_DerivativeInstrumentCommonSharesHeldPerShare" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DerivativeInstrumentSharesOfCommonStockHeld" xlink:label="dsgx_DerivativeInstrumentSharesOfCommonStockHeld" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeGainOnDerivative" xlink:label="us-gaap_DerivativeGainOnDerivative" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeStatementLocationAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_DerivativeInstrumentSharesOfCommonStockHeld" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_DerivativeInstrumentCommonSharesHeldPerShare" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DerivativeGainOnDerivative" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-5-trade-accounts-receivable-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UnbilledReceivablesCurrent" xlink:label="us-gaap_UnbilledReceivablesCurrent" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_UnbilledReceivablesCurrent" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-6-other-receivables-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-6-other-receivables-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-6-other-receivables-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_AmountsRecoverableFromFundsHeldInEscrow" xlink:label="dsgx_AmountsRecoverableFromFundsHeldInEscrow" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_AmountsRecoverableFromFundsHeldInEscrow" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-7-inventory-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-7-inventory-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-7-inventory-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryValuationReserves" xlink:label="us-gaap_InventoryValuationReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InventoryValuationReserves" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-9-intangible-assets-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-9-intangible-assets-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-9-intangible-assets-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-12-longterm-debt-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-12-longterm-debt-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-12-longterm-debt-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CanadaOrUsPrimeRateBaOrLiborMember" xlink:label="dsgx_CanadaOrUsPrimeRateBaOrLiborMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember" xlink:label="dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_RevolvingOperatingCreditFacilityMember" xlink:label="dsgx_RevolvingOperatingCreditFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_SeniorSecuredCreditFacilityMember" xlink:label="dsgx_SeniorSecuredCreditFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentTerm" xlink:label="us-gaap_DebtInstrumentTerm" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LettersOfCreditOutstandingAmount" xlink:label="us-gaap_LettersOfCreditOutstandingAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCredit" xlink:label="us-gaap_LineOfCredit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:label="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain-default" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_CreditFacilityAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="dsgx_RevolvingOperatingCreditFacilityMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DebtInstrumentAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="dsgx_SeniorSecuredCreditFacilityMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_VariableRateAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_VariableRateDomain" xlink:to="dsgx_CanadaOrUsPrimeRateBaOrLiborMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain-default" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="dsgx_SeniorSecuredCreditFacilityMember" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DebtInstrumentTerm" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LineOfCredit" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LettersOfCreditOutstandingAmount" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-13-leases-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-13-leases-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-13-leases-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseRemainingLeaseTerm" xlink:label="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:label="us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-14-commitments-contingencies-and-guarantees-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-14-commitments-contingencies-and-guarantees-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-14-commitments-contingencies-and-guarantees-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" xlink:label="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_COREKontainersAndShipTrackMember" xlink:label="dsgx_COREKontainersAndShipTrackMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xlink:label="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredShareUnitLiabilityNumberOfCommonShares" xlink:label="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xlink:label="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DerivativeInstrumentSharesOfCommonStockHeld" xlink:label="dsgx_DerivativeInstrumentSharesOfCommonStockHeld" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_COREKontainersAndShipTrackMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_DerivativeInstrumentSharesOfCommonStockHeld" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-15-share-capital-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-15-share-capital-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-15-share-capital-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_OverallotmentOption" xlink:label="dsgx_OverallotmentOption" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ProceedsFromIssuanceOfCommonStockNet" xlink:label="dsgx_ProceedsFromIssuanceOfCommonStockNet" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShelfProspectusMaximumAmount" xlink:label="dsgx_ShelfProspectusMaximumAmount" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShelfProspectusMember" xlink:label="dsgx_ShelfProspectusMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShelfProspectusPeriod" xlink:label="dsgx_ShelfProspectusPeriod" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_The2020BaseShelfProspectusMember" xlink:label="dsgx_The2020BaseShelfProspectusMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="us-gaap_ProceedsFromStockOptionsExercised" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SaleOfStockNameOfTransactionDomain" xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SaleOfStockNameOfTransactionDomain" xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharesIssuedPricePerShare" xlink:label="us-gaap_SharesIssuedPricePerShare" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:label="us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueNewIssues" xlink:label="us-gaap_StockIssuedDuringPeriodValueNewIssues" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsidiarySaleOfStockAxis" xlink:label="us-gaap_SubsidiarySaleOfStockAxis" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_SubsidiarySaleOfStockAxis" xlink:to="us-gaap_SaleOfStockNameOfTransactionDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_SubsidiarySaleOfStockAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SaleOfStockNameOfTransactionDomain" xlink:to="dsgx_ShelfProspectusMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_SubsidiarySaleOfStockAxis" xlink:to="us-gaap_SaleOfStockNameOfTransactionDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SaleOfStockNameOfTransactionDomain" xlink:to="dsgx_The2020BaseShelfProspectusMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ShelfProspectusPeriod" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ShelfProspectusMaximumAmount" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharesIssuedPricePerShare" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_OverallotmentOption" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueNewIssues" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ProceedsFromIssuanceOfCommonStockNet" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ProceedsFromStockOptionsExercised" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-16-earnings-per-share-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-16-earnings-per-share-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-16-earnings-per-share-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_PSUsAndRSUsMember" xlink:label="dsgx_PSUsAndRSUsMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_StockOptionsTreasuryStockMethodMember" xlink:label="dsgx_StockOptionsTreasuryStockMethodMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="us-gaap_AntidilutiveSecuritiesNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:to="us-gaap_EmployeeStockOptionMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="us-gaap_AntidilutiveSecuritiesNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:to="dsgx_StockOptionsTreasuryStockMethodMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:to="dsgx_PSUsAndRSUsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-17-stockbased-compensation-plans-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CashSettledRestrictedShareUnitsCompensationExpense" xlink:label="dsgx_CashSettledRestrictedShareUnitsCompensationExpense" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CashsettledRestrictedShareUnitMember" xlink:label="dsgx_CashsettledRestrictedShareUnitMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredShareUnitPlanMember" xlink:label="dsgx_DeferredShareUnitPlanMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredShareUnitsCompensationExpense" xlink:label="dsgx_DeferredShareUnitsCompensationExpense" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredShareUnitsGrantsInPeriod" xlink:label="dsgx_DeferredShareUnitsGrantsInPeriod" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredShareUnitsOutstandingNumber" xlink:label="dsgx_DeferredShareUnitsOutstandingNumber" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredShareUnitsRedeemedAndSettledInCash" xlink:label="dsgx_DeferredShareUnitsRedeemedAndSettledInCash" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShareholderapprovedStockOptionPlanMember" xlink:label="dsgx_ShareholderapprovedStockOptionPlanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" xlink:label="us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PlanNameAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PlanNameDomain" xlink:to="dsgx_ShareholderapprovedStockOptionPlanMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_EmployeeStockOptionMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_PerformanceSharesMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PlanNameDomain" xlink:to="dsgx_DeferredShareUnitPlanMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PlanNameDomain" xlink:to="dsgx_CashsettledRestrictedShareUnitMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_DeferredShareUnitsOutstandingNumber" xlink:type="arc"/>
    <link:definitionArc order="13" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" xlink:type="arc"/>
    <link:definitionArc order="14" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_DeferredShareUnitsGrantsInPeriod" xlink:type="arc"/>
    <link:definitionArc order="15" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_DeferredShareUnitsRedeemedAndSettledInCash" xlink:type="arc"/>
    <link:definitionArc order="16" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_DeferredShareUnitsCompensationExpense" xlink:type="arc"/>
    <link:definitionArc order="17" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CashSettledRestrictedShareUnitsCompensationExpense" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-18-income-taxes-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_IncomeBeforeTaxesPercent" xlink:label="dsgx_IncomeBeforeTaxesPercent" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember" xlink:label="dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:label="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ChangeInAccountingPrincipleMember" xlink:label="us-gaap_ChangeInAccountingPrincipleMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ChangeInAccountingPrincipleMember" xlink:label="us-gaap_ChangeInAccountingPrincipleMember-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CurrentFederalTaxExpenseBenefit" xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:label="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit" xlink:label="us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UndistributedEarningsOfForeignSubsidiaries" xlink:label="us-gaap_UndistributedEarningsOfForeignSubsidiaries" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xlink:label="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:to="us-gaap_ChangeInAccountingPrincipleMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ChangeInAccountingPrincipleMember" xlink:to="dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:to="us-gaap_ChangeInAccountingPrincipleMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_IncomeBeforeTaxesPercent" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CurrentFederalTaxExpenseBenefit" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_UndistributedEarningsOfForeignSubsidiaries" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs-1-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-19-contract-balances-performance-obligations-and-contract-costs-1-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs-1-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CapitalizedContractCostAmortization" xlink:label="us-gaap_CapitalizedContractCostAmortization" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CapitalizedContractCostNet" xlink:label="us-gaap_CapitalizedContractCostNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CapitalizedContractCostNet" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CapitalizedContractCostAmortization" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs-2-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-19-contract-balances-performance-obligations-and-contract-costs-2-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs-2-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="us-gaap_RevenueRemainingPerformanceObligation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligation" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-20-other-charges-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-20-other-charges-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-20-other-charges-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_Fiscal2021RestructuringPlanMember" xlink:label="dsgx_Fiscal2021RestructuringPlanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1" xlink:label="us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringCharges" xlink:label="us-gaap_RestructuringCharges" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringPlanAxis" xlink:label="us-gaap_RestructuringPlanAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringPlanDomain" xlink:label="us-gaap_RestructuringPlanDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringPlanDomain" xlink:label="us-gaap_RestructuringPlanDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_RestructuringPlanAxis" xlink:to="us-gaap_RestructuringPlanDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_RestructuringPlanAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_RestructuringPlanDomain" xlink:to="dsgx_Fiscal2021RestructuringPlanMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_RestructuringPlanAxis" xlink:to="us-gaap_RestructuringPlanDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RestructuringCharges" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-22-segmented-information-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-22-segmented-information-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-22-segmented-information-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NumberOfReportableSegments" xlink:label="us-gaap_NumberOfReportableSegments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NumberOfReportableSegments" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-23-subsequent-event-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-23-subsequent-event-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-23-subsequent-event-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VitaDexSolutionsLLCMember" xlink:label="dsgx_VitaDexSolutionsLLCMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain-default" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_SubsequentEventTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SubsequentEventTypeDomain" xlink:to="us-gaap_SubsequentEventMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_VitaDexSolutionsLLCMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details-parentheticals" xlink:href="dsgx-20210131.xsd#statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details-parentheticals" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details-parentheticals" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_AljexSoftwareIncMember" xlink:label="dsgx_AljexSoftwareIncMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BesttransportMember" xlink:label="dsgx_BesttransportMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_KontainersMember" xlink:label="dsgx_KontainersMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_PeoplevoxMember" xlink:label="dsgx_PeoplevoxMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_PinPointMember" xlink:label="dsgx_PinPointMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShipTrackMember" xlink:label="dsgx_ShipTrackMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_StepcomMember" xlink:label="dsgx_StepcomMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VelocityMailMember" xlink:label="dsgx_VelocityMailMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAcquiredFromAcquisition" xlink:label="us-gaap_CashAcquiredFromAcquisition" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_PeoplevoxMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_KontainersMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_ShipTrackMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_VisualComplianceMember" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_StepcomMember" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_BesttransportMember" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_AljexSoftwareIncMember" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_VelocityMailMember" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_PinPointMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CashAcquiredFromAcquisition" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-3-acquisitions-acquired-intangible-assets-useful-lives-details" xlink:href="dsgx-20210131.xsd#statement-note-3-acquisitions-acquired-intangible-assets-useful-lives-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-3-acquisitions-acquired-intangible-assets-useful-lives-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_AljexSoftwareIncMember" xlink:label="dsgx_AljexSoftwareIncMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BesttransportMember" xlink:label="dsgx_BesttransportMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ExistingTechnologyMember" xlink:label="dsgx_ExistingTechnologyMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_KontainersMember" xlink:label="dsgx_KontainersMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_PeoplevoxMember" xlink:label="dsgx_PeoplevoxMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_PinPointMember" xlink:label="dsgx_PinPointMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShipTrackMember" xlink:label="dsgx_ShipTrackMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_StepcomMember" xlink:label="dsgx_StepcomMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VelocityMailMember" xlink:label="dsgx_VelocityMailMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerRelationshipsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_PeoplevoxMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_KontainersMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_ShipTrackMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_VisualComplianceMember" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_StepcomMember" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_BesttransportMember" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_AljexSoftwareIncMember" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_VelocityMailMember" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_PinPointMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="dsgx_ExistingTechnologyMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TradeNamesMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_NoncompeteAgreementsMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable-provision-for-credit-losses-details" xlink:href="dsgx-20210131.xsd#statement-note-5-trade-accounts-receivable-provision-for-credit-losses-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable-provision-for-credit-losses-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange" xlink:label="dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="us-gaap_ProvisionForDoubtfulAccounts" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ProvisionForDoubtfulAccounts" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-13-leases-components-of-operating-lease-expense-details" xlink:href="dsgx-20210131.xsd#statement-note-13-leases-components-of-operating-lease-expense-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-13-leases-components-of-operating-lease-expense-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LeaseCost" xlink:label="us-gaap_LeaseCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseCost" xlink:label="us-gaap_OperatingLeaseCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeasePayments" xlink:label="us-gaap_OperatingLeasePayments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShortTermLeaseCost" xlink:label="us-gaap_ShortTermLeaseCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseCost" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShortTermLeaseCost" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LeaseCost" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeasePayments" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-13-leases-maturities-of-operating-lease-liabilities-details" xlink:href="dsgx-20210131.xsd#statement-note-13-leases-maturities-of-operating-lease-liabilities-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-13-leases-maturities-of-operating-lease-liabilities-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseLiability" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-assumptions-used-in-blackscholes-model-for-each-grant-details" xlink:href="dsgx-20210131.xsd#statement-note-17-stockbased-compensation-plans-assumptions-used-in-blackscholes-model-for-each-grant-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-assumptions-used-in-blackscholes-model-for-each-grant-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-summary-of-option-activity-details" xlink:href="dsgx-20210131.xsd#statement-note-17-stockbased-compensation-plans-summary-of-option-activity-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-summary-of-option-activity-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:type="arc"/>
    <link:definitionArc order="13" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:type="arc"/>
    <link:definitionArc order="14" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:type="arc"/>
    <link:definitionArc order="15" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:type="arc"/>
    <link:definitionArc order="16" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:type="arc"/>
    <link:definitionArc order="17" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:type="arc"/>
    <link:definitionArc order="18" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-summary-of-nonvested-share-details" xlink:href="dsgx-20210131.xsd#statement-note-17-stockbased-compensation-plans-summary-of-nonvested-share-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-summary-of-nonvested-share-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShareholderapprovedStockOptionPlanMember" xlink:label="dsgx_ShareholderapprovedStockOptionPlanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PlanNameAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PlanNameDomain" xlink:to="dsgx_ShareholderapprovedStockOptionPlanMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-summary-of-performance-share-units-activity-details" xlink:href="dsgx-20210131.xsd#statement-note-17-stockbased-compensation-plans-summary-of-performance-share-units-activity-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-summary-of-performance-share-units-activity-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_PerformanceSharesMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:type="arc"/>
    <link:definitionArc order="13" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" xlink:type="arc"/>
    <link:definitionArc order="14" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:definitionArc order="15" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" xlink:type="arc"/>
    <link:definitionArc order="16" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-summary-of-restricted-share-units-activity-details" xlink:href="dsgx-20210131.xsd#statement-note-17-stockbased-compensation-plans-summary-of-restricted-share-units-activity-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-summary-of-restricted-share-units-activity-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:definitionArc order="13" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" xlink:type="arc"/>
    <link:definitionArc order="14" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-summary-of-crsu-plan-activity-details" xlink:href="dsgx-20210131.xsd#statement-note-17-stockbased-compensation-plans-summary-of-crsu-plan-activity-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-summary-of-crsu-plan-activity-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CRSUAwardNonvestedNumber" xlink:label="dsgx_CRSUAwardNonvestedNumber" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CRSUAwardNonvestedWeightedAverageContractualLife" xlink:label="dsgx_CRSUAwardNonvestedWeightedAverageContractualLife" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CRSUAwardsForfeitedInPeriod" xlink:label="dsgx_CRSUAwardsForfeitedInPeriod" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CRSUAwardsGrantsInPeriod" xlink:label="dsgx_CRSUAwardsGrantsInPeriod" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CRSUAwardsOutstandingNumber" xlink:label="dsgx_CRSUAwardsOutstandingNumber" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CRSUAwardsVestedAndSettledInCash" xlink:label="dsgx_CRSUAwardsVestedAndSettledInCash" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CRSUAwardsWeightedAverageContractualLife" xlink:label="dsgx_CRSUAwardsWeightedAverageContractualLife" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CRSUAwardsOutstandingNumber" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CRSUAwardsWeightedAverageContractualLife" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CRSUAwardsGrantsInPeriod" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CRSUAwardsVestedAndSettledInCash" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CRSUAwardsForfeitedInPeriod" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CRSUAwardNonvestedNumber" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CRSUAwardNonvestedWeightedAverageContractualLife" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-income-tax-loss-carryforwards-expiration-dates-details" xlink:href="dsgx-20210131.xsd#statement-note-18-income-taxes-income-tax-loss-carryforwards-expiration-dates-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-income-tax-loss-carryforwards-expiration-dates-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_AfterTaxYear2026Member" xlink:label="dsgx_AfterTaxYear2026Member" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_AsiaPacificIncomeTaxAuthorityMember" xlink:label="dsgx_AsiaPacificIncomeTaxAuthorityMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_EmeaIncomeTaxAuthorityMember" xlink:label="dsgx_EmeaIncomeTaxAuthorityMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_TaxYear2022Member" xlink:label="dsgx_TaxYear2022Member" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_TaxYear2023Member" xlink:label="dsgx_TaxYear2023Member" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_TaxYear2024Member" xlink:label="dsgx_TaxYear2024Member" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_TaxYear2025Member" xlink:label="dsgx_TaxYear2025Member" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_TaxYear2026Member" xlink:label="dsgx_TaxYear2026Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CanadaRevenueAgencyMember" xlink:label="us-gaap_CanadaRevenueAgencyMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DomesticCountryMember" xlink:label="us-gaap_DomesticCountryMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCountryMember" xlink:label="us-gaap_ForeignCountryMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityNameAxis" xlink:label="us-gaap_IncomeTaxAuthorityNameAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityNameDomain" xlink:label="us-gaap_IncomeTaxAuthorityNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityNameDomain" xlink:label="us-gaap_IncomeTaxAuthorityNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InternalRevenueServiceIRSMember" xlink:label="us-gaap_InternalRevenueServiceIRSMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLossCarryforwards" xlink:label="us-gaap_OperatingLossCarryforwards" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TaxPeriodAxis" xlink:label="us-gaap_TaxPeriodAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TaxPeriodDomain" xlink:label="us-gaap_TaxPeriodDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TaxPeriodDomain" xlink:label="us-gaap_TaxPeriodDomain-default" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_IncomeTaxAuthorityNameAxis" xlink:to="us-gaap_IncomeTaxAuthorityNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_TaxPeriodAxis" xlink:to="us-gaap_TaxPeriodDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeTaxAuthorityNameAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeTaxAuthorityNameDomain" xlink:to="us-gaap_CanadaRevenueAgencyMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_IncomeTaxAuthorityNameAxis" xlink:to="us-gaap_IncomeTaxAuthorityNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeTaxAuthorityAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="us-gaap_ForeignCountryMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_TaxPeriodAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TaxPeriodDomain" xlink:to="dsgx_TaxYear2022Member" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_TaxPeriodAxis" xlink:to="us-gaap_TaxPeriodDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="us-gaap_DomesticCountryMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeTaxAuthorityNameDomain" xlink:to="us-gaap_InternalRevenueServiceIRSMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeTaxAuthorityNameDomain" xlink:to="dsgx_EmeaIncomeTaxAuthorityMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeTaxAuthorityNameDomain" xlink:to="dsgx_AsiaPacificIncomeTaxAuthorityMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TaxPeriodDomain" xlink:to="dsgx_TaxYear2023Member" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TaxPeriodDomain" xlink:to="dsgx_TaxYear2024Member" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TaxPeriodDomain" xlink:to="dsgx_TaxYear2025Member" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TaxPeriodDomain" xlink:to="dsgx_TaxYear2026Member" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TaxPeriodDomain" xlink:to="dsgx_AfterTaxYear2026Member" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLossCarryforwards" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs-changes-in-deferred-revenue-and-contract-assets-details" xlink:href="dsgx-20210131.xsd#statement-note-19-contract-balances-performance-obligations-and-contract-costs-changes-in-deferred-revenue-and-contract-assets-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs-changes-in-deferred-revenue-and-contract-assets-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange" xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet" xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606" xlink:label="dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange" xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue" xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerAssetNet" xlink:label="us-gaap_ContractWithCustomerAssetNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerAssetReclassifiedToReceivable" xlink:label="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiability" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerAssetNet" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-20-other-charges-restructuring-provision-details" xlink:href="dsgx-20210131.xsd#statement-note-20-other-charges-restructuring-provision-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-20-other-charges-restructuring-provision-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeSeveranceMember" xlink:label="us-gaap_EmployeeSeveranceMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FacilityClosingMember" xlink:label="us-gaap_FacilityClosingMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsForRestructuring" xlink:label="us-gaap_PaymentsForRestructuring" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringCostAndReserveAxis" xlink:label="us-gaap_RestructuringCostAndReserveAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringReserve" xlink:label="us-gaap_RestructuringReserve" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringReserveAccrualAdjustment1" xlink:label="us-gaap_RestructuringReserveAccrualAdjustment1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringReserveTranslationAdjustment" xlink:label="us-gaap_RestructuringReserveTranslationAdjustment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfRestructuringDomain" xlink:label="us-gaap_TypeOfRestructuringDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfRestructuringDomain" xlink:label="us-gaap_TypeOfRestructuringDomain-default" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_RestructuringCostAndReserveAxis" xlink:to="us-gaap_TypeOfRestructuringDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_RestructuringCostAndReserveAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TypeOfRestructuringDomain" xlink:to="us-gaap_EmployeeSeveranceMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_RestructuringCostAndReserveAxis" xlink:to="us-gaap_TypeOfRestructuringDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TypeOfRestructuringDomain" xlink:to="us-gaap_FacilityClosingMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RestructuringReserve" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RestructuringReserveAccrualAdjustment1" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PaymentsForRestructuring" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RestructuringReserveTranslationAdjustment" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-consolidated-statements-of-cash-flows" xlink:href="dsgx-20210131.xsd#statement-consolidated-statements-of-cash-flows" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-consolidated-statements-of-cash-flows" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredTaxCharges" xlink:label="dsgx_DeferredTaxCharges" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Depreciation" xlink:label="us-gaap_Depreciation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="us-gaap_IncomeTaxesPaidNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInOperatingCapital" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InterestPaidNet" xlink:label="us-gaap_InterestPaidNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNoncashIncomeExpense" xlink:label="us-gaap_OtherNoncashIncomeExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsOfDebtIssuanceCosts" xlink:label="us-gaap_PaymentsOfDebtIssuanceCosts" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:label="us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromLinesOfCredit" xlink:label="us-gaap_ProceedsFromLinesOfCredit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RepaymentsOfDebt" xlink:label="us-gaap_RepaymentsOfDebt" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_Depreciation" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AmortizationOfIntangibleAssets" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_ShareBasedCompensation" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_OtherNoncashIncomeExpense" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="dsgx_DeferredTaxCharges" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_ProceedsFromLinesOfCredit" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_RepaymentsOfDebt" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_PaymentsOfDebtIssuanceCosts" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SupplementalCashFlowInformationAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_InterestPaidNet" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_IncomeTaxesPaidNet" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-options-outstanding-and-options-exercisable-details" xlink:href="dsgx-20210131.xsd#statement-note-17-stockbased-compensation-plans-options-outstanding-and-options-exercisable-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-options-outstanding-and-options-exercisable-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_Range1Member" xlink:label="dsgx_Range1Member" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_Range2Member" xlink:label="dsgx_Range2Member" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_Range3Member" xlink:label="dsgx_Range3Member" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_Range4Member" xlink:label="dsgx_Range4Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1" xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:to="dsgx_Range1Member" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:to="dsgx_Range2Member" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:to="dsgx_Range3Member" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:to="dsgx_Range4Member" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details" xlink:href="dsgx-20210131.xsd#statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_AljexSoftwareIncMember" xlink:label="dsgx_AljexSoftwareIncMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BesttransportMember" xlink:label="dsgx_BesttransportMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" xlink:label="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BusinessCombinationConsiderationTransferredPayable" xlink:label="dsgx_BusinessCombinationConsiderationTransferredPayable" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ExistingTechnologyMember" xlink:label="dsgx_ExistingTechnologyMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_KontainersMember" xlink:label="dsgx_KontainersMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_PeoplevoxMember" xlink:label="dsgx_PeoplevoxMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_PinPointMember" xlink:label="dsgx_PinPointMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShipTrackMember" xlink:label="dsgx_ShipTrackMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_StepcomMember" xlink:label="dsgx_StepcomMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_The2019AcquisitionsMember" xlink:label="dsgx_The2019AcquisitionsMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_The2020AcquisitionsMember" xlink:label="dsgx_The2020AcquisitionsMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_The2021AcquisitionsMember" xlink:label="dsgx_The2021AcquisitionsMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VelocityMailMember" xlink:label="dsgx_VelocityMailMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_PeoplevoxMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_KontainersMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_ShipTrackMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_The2021AcquisitionsMember" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_VisualComplianceMember" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_StepcomMember" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_BesttransportMember" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_The2020AcquisitionsMember" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_AljexSoftwareIncMember" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_VelocityMailMember" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_PinPointMember" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_The2019AcquisitionsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerRelationshipsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="dsgx_ExistingTechnologyMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TradeNamesMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_NoncompeteAgreementsMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_BusinessCombinationConsiderationTransferredPayable" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities" xlink:type="arc"/>
    <link:definitionArc order="13" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" xlink:type="arc"/>
    <link:definitionArc order="14" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:type="arc"/>
    <link:definitionArc order="15" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_Goodwill" xlink:type="arc"/>
    <link:definitionArc order="16" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable" xlink:type="arc"/>
    <link:definitionArc order="17" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:type="arc"/>
    <link:definitionArc order="18" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:type="arc"/>
    <link:definitionArc order="19" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-3-acquisitions-pro-forma-results-of-operations-details" xlink:href="dsgx-20210131.xsd#statement-note-3-acquisitions-pro-forma-results-of-operations-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-3-acquisitions-pro-forma-results-of-operations-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EarningsPerShareAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-4-fair-value-measurements-derivative-instruments-at-fair-value-details" xlink:href="dsgx-20210131.xsd#statement-note-4-fair-value-measurements-derivative-instruments-at-fair-value-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-4-fair-value-measurements-derivative-instruments-at-fair-value-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeAssets" xlink:label="us-gaap_DerivativeAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DesignatedAsHedgingInstrumentMember" xlink:label="us-gaap_DesignatedAsHedgingInstrumentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationAxis" xlink:label="us-gaap_HedgingDesignationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationDomain" xlink:label="us-gaap_HedgingDesignationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationDomain" xlink:label="us-gaap_HedgingDesignationDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NondesignatedMember" xlink:label="us-gaap_NondesignatedMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_HedgingDesignationAxis" xlink:to="us-gaap_HedgingDesignationDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_HedgingDesignationAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_HedgingDesignationDomain" xlink:to="us-gaap_DesignatedAsHedgingInstrumentMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_HedgingDesignationAxis" xlink:to="us-gaap_HedgingDesignationDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_HedgingDesignationDomain" xlink:to="us-gaap_NondesignatedMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DerivativeAssets" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable-trade-receivables-details" xlink:href="dsgx-20210131.xsd#statement-note-5-trade-accounts-receivable-trade-receivables-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable-trade-receivables-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsReceivableGrossCurrent" xlink:label="us-gaap_AccountsReceivableGrossCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AccountsReceivableGrossCurrent" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AccountsReceivableNetCurrent" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-6-other-receivables-other-receivables-details" xlink:href="dsgx-20210131.xsd#statement-note-6-other-receivables-other-receivables-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-6-other-receivables-other-receivables-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions" xlink:label="dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherAssetsCurrent" xlink:label="us-gaap_OtherAssetsCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherReceivablesNetCurrent" xlink:label="us-gaap_OtherReceivablesNetCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherAssetsCurrent" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherReceivablesNetCurrent" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-10-goodwill-goodwill-details" xlink:href="dsgx-20210131.xsd#statement-note-10-goodwill-goodwill-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-10-goodwill-goodwill-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BesttransportMember" xlink:label="dsgx_BesttransportMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_KontainersMember" xlink:label="dsgx_KontainersMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_PeoplevoxMember" xlink:label="dsgx_PeoplevoxMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShipTrackMember" xlink:label="dsgx_ShipTrackMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_StepcomMember" xlink:label="dsgx_StepcomMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillAcquiredDuringPeriod" xlink:label="us-gaap_GoodwillAcquiredDuringPeriod" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments" xlink:label="us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_VisualComplianceMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_StepcomMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_BesttransportMember" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_PeoplevoxMember" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_KontainersMember" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="dsgx_ShipTrackMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_Goodwill" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_GoodwillAcquiredDuringPeriod" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-11-accrued-liabilities-accrued-liabilities-details" xlink:href="dsgx-20210131.xsd#statement-note-11-accrued-liabilities-accrued-liabilities-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-11-accrued-liabilities-accrued-liabilities-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedProfessionalFeesCurrent" xlink:label="us-gaap_AccruedProfessionalFeesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AccruedProfessionalFeesCurrent" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherAccruedLiabilitiesCurrent" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AccruedLiabilitiesCurrent" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-15-share-capital-common-shares-outstanding-details" xlink:href="dsgx-20210131.xsd#statement-note-15-share-capital-common-shares-outstanding-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-15-share-capital-common-shares-outstanding-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised" xlink:label="dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" xlink:label="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:label="us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CommonStockSharesOutstanding" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-16-earnings-per-share-computation-of-basic-and-diluted-earnings-per-share-details" xlink:href="dsgx-20210131.xsd#statement-note-16-earnings-per-share-computation-of-basic-and-diluted-earnings-per-share-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-16-earnings-per-share-computation-of-basic-and-diluted-earnings-per-share-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_EmployeeStockOptionMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EarningsPerShareAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareBasic" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareDiluted" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-total-estimated-stockbased-compensation-expense-details" xlink:href="dsgx-20210131.xsd#statement-note-17-stockbased-compensation-plans-total-estimated-stockbased-compensation-expense-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-total-estimated-stockbased-compensation-expense-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CostOfSalesMember" xlink:label="us-gaap_CostOfSalesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ResearchAndDevelopmentExpenseMember" xlink:label="us-gaap_ResearchAndDevelopmentExpenseMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SellingAndMarketingExpenseMember" xlink:label="us-gaap_SellingAndMarketingExpenseMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeStatementLocationAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_CostOfSalesMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_SellingAndMarketingExpenseMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_ResearchAndDevelopmentExpenseMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-provision-recovery-for-income-taxes-from-the-expected-provision-at-the-statutory-rates-details" xlink:href="dsgx-20210131.xsd#statement-note-18-income-taxes-provision-recovery-for-income-taxes-from-the-expected-provision-at-the-statutory-rates-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-provision-recovery-for-income-taxes-from-the-expected-provision-at-the-statutory-rates-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions" xlink:label="dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate" xlink:label="us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:label="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationOtherAdjustments" xlink:label="us-gaap_IncomeTaxReconciliationOtherAdjustments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes" xlink:label="us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationOtherAdjustments" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefit" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-reconciliation-of-the-total-estimated-liability-associated-with-uncertain-tax-provisions-details" xlink:href="dsgx-20210131.xsd#statement-note-18-income-taxes-reconciliation-of-the-total-estimated-liability-associated-with-uncertain-tax-provisions-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-reconciliation-of-the-total-estimated-liability-associated-with-uncertain-tax-provisions-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="us-gaap_UnrecognizedTaxBenefits" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:label="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_UnrecognizedTaxBenefits" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-20-other-charges-other-charges-included-in-consolidated-statements-of-operations-details" xlink:href="dsgx-20210131.xsd#statement-note-20-other-charges-other-charges-included-in-consolidated-statements-of-operations-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-20-other-charges-other-charges-included-in-consolidated-statements-of-operations-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNonoperatingExpense" xlink:label="us-gaap_OtherNonoperatingExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringCharges" xlink:label="us-gaap_RestructuringCharges" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RestructuringCharges" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherNonoperatingExpense" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-21-supplemental-cash-flow-information-cash-flow-changes-in-operating-asset-and-liabilities-details" xlink:href="dsgx-20210131.xsd#statement-note-21-supplemental-cash-flow-information-cash-flow-changes-in-operating-asset-and-liabilities-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-21-supplemental-cash-flow-information-cash-flow-changes-in-operating-asset-and-liabilities-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_IncreaseDecreaseInOperatingLeaseLiabilities" xlink:label="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInIncomeTaxes" xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxes" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInOperatingCapital" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInOtherReceivables" xlink:label="us-gaap_IncreaseDecreaseInOtherReceivables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncreaseDecreaseInOtherReceivables" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncreaseDecreaseInInventories" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncreaseDecreaseInIncomeTaxes" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-consolidated-balance-sheets" xlink:href="dsgx-20210131.xsd#statement-consolidated-balance-sheets" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-consolidated-balance-sheets" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsReceivableNetAbstract" xlink:label="us-gaap_AccountsReceivableNetAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedIncomeTaxesCurrent" xlink:label="us-gaap_AccruedIncomeTaxesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedIncomeTaxesNoncurrent" xlink:label="us-gaap_AccruedIncomeTaxesNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="us-gaap_AssetsCurrentAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredRevenueNoncurrent" xlink:label="us-gaap_DeferredRevenueNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherReceivablesNetCurrent" xlink:label="us-gaap_OtherReceivablesNetCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="us-gaap_StockholdersEquityAbstract" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AssetsCurrentAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AccountsReceivableNetAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_AccountsReceivableNetCurrent" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_OtherReceivablesNetCurrent" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_InventoryNet" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_AssetsCurrent" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_OtherAssetsNoncurrent" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_DeferredIncomeTaxAssetsNet" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_Goodwill" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_Assets" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LiabilitiesCurrentAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_AccountsPayableCurrent" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_AccruedLiabilitiesCurrent" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_AccruedIncomeTaxesCurrent" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LiabilitiesCurrent" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LongTermDebtNoncurrent" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_DeferredRevenueNoncurrent" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_AccruedIncomeTaxesNoncurrent" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_Liabilities" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_CommitmentsAndContingencies" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquityAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_CommonStockValue" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_AdditionalPaidInCapitalCommonStock" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquity" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-consolidated-statements-of-operations-" xlink:href="dsgx-20210131.xsd#statement-consolidated-statements-of-operations-" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-consolidated-statements-of-operations-" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CostsAndExpensesAbstract" xlink:label="us-gaap_CostsAndExpensesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="us-gaap_GeneralAndAdministrativeExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InvestmentIncomeNet" xlink:label="us-gaap_InvestmentIncomeNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingExpenses" xlink:label="us-gaap_OperatingExpenses" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNonoperatingExpense" xlink:label="us-gaap_OtherNonoperatingExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="us-gaap_ResearchAndDevelopmentExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SellingAndMarketingExpense" xlink:label="us-gaap_SellingAndMarketingExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CostOfGoodsAndServicesSold" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_GrossProfit" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CostsAndExpensesAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_SellingAndMarketingExpense" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_ResearchAndDevelopmentExpense" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_GeneralAndAdministrativeExpense" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_OtherNonoperatingExpense" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_AmortizationOfIntangibleAssets" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_OperatingExpenses" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_OperatingIncomeLoss" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_InterestExpense" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_InvestmentIncomeNet" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="us-gaap_IncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EarningsPerShareAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareBasic" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareDiluted" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-8-property-and-equipment-property-and-equipment-details" xlink:href="dsgx-20210131.xsd#statement-note-8-property-and-equipment-property-and-equipment-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-8-property-and-equipment-property-and-equipment-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_EquipmentInstalledWithCustomersMember" xlink:label="dsgx_EquipmentInstalledWithCustomersMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetUnderConstructionMember" xlink:label="us-gaap_AssetUnderConstructionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ComputerEquipmentMember" xlink:label="us-gaap_ComputerEquipmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FurnitureAndFixturesMember" xlink:label="us-gaap_FurnitureAndFixturesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LeaseholdImprovementsMember" xlink:label="us-gaap_LeaseholdImprovementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_ComputerEquipmentMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_FurnitureAndFixturesMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_LeaseholdImprovementsMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="dsgx_EquipmentInstalledWithCustomersMember" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_AssetUnderConstructionMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-9-intangible-assets-intangible-assets-details" xlink:href="dsgx-20210131.xsd#statement-note-9-intangible-assets-intangible-assets-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-9-intangible-assets-intangible-assets-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DevelopedTechnologyRightsMember" xlink:label="us-gaap_DevelopedTechnologyRightsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerRelationshipsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_DevelopedTechnologyRightsMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TradeNamesMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_NoncompeteAgreementsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-income-loss-before-income-taxes-earned-by-tax-jurisdictions-details" xlink:href="dsgx-20210131.xsd#statement-note-18-income-taxes-income-loss-before-income-taxes-earned-by-tax-jurisdictions-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-income-loss-before-income-taxes-earned-by-tax-jurisdictions-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd#country_CA" xlink:label="country_CA" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd#country_US" xlink:label="country_US" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_OtherCountriesMember" xlink:label="dsgx_OtherCountriesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeTaxAuthorityAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="country_CA" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="country_US" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="dsgx_OtherCountriesMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-income-tax-expense-recovery-incurred-by-jurisdictions-details" xlink:href="dsgx-20210131.xsd#statement-note-18-income-taxes-income-tax-expense-recovery-incurred-by-jurisdictions-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-income-tax-expense-recovery-incurred-by-jurisdictions-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd#country_CA" xlink:label="country_CA" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd#country_US" xlink:label="country_US" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_OtherCountriesMember" xlink:label="dsgx_OtherCountriesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeTaxAuthorityAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="country_CA" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="country_US" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="dsgx_OtherCountriesMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefit" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-components-of-deferred-income-tax-assets-and-liabilities-details" xlink:href="dsgx-20210131.xsd#statement-note-18-income-taxes-components-of-deferred-income-tax-assets-and-liabilities-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-components-of-deferred-income-tax-assets-and-liabilities-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredTaxAssetsCorporateMinimumTaxes" xlink:label="dsgx_DeferredTaxAssetsCorporateMinimumTaxes" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredTaxAssetsLiabilitesNet1" xlink:label="dsgx_DeferredTaxAssetsLiabilitesNet1" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredTaxAssetsNetBeforeValuationAllowance" xlink:label="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilities" xlink:label="us-gaap_DeferredIncomeTaxLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsGross" xlink:label="us-gaap_DeferredTaxAssetsGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:label="us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:label="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxLiabilitiesOther" xlink:label="us-gaap_DeferredTaxLiabilitiesOther" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_DeferredTaxAssetsCorporateMinimumTaxes" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsGross" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxLiabilitiesOther" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredIncomeTaxLiabilities" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsValuationAllowance" xlink:type="arc"/>
    <link:definitionArc order="13" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_DeferredTaxAssetsLiabilitesNet1" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-22-segmented-information-segmented-revenue-by-geographical-location-of-customer-details" xlink:href="dsgx-20210131.xsd#statement-note-22-segmented-information-segmented-revenue-by-geographical-location-of-customer-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-22-segmented-information-segmented-revenue-by-geographical-location-of-customer-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd#country_CA" xlink:label="country_CA" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd#country_US" xlink:label="country_US" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_AsiaPacificMember" xlink:label="srt_AsiaPacificMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_StatementGeographicalAxis" xlink:label="srt_StatementGeographicalAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EMEAMember" xlink:label="us-gaap_EMEAMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_StatementGeographicalAxis" xlink:to="srt_SegmentGeographicalDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_StatementGeographicalAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_SegmentGeographicalDomain" xlink:to="country_US" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_StatementGeographicalAxis" xlink:to="srt_SegmentGeographicalDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_SegmentGeographicalDomain" xlink:to="us-gaap_EMEAMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_SegmentGeographicalDomain" xlink:to="country_CA" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_SegmentGeographicalDomain" xlink:to="srt_AsiaPacificMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-22-segmented-information-segmented-revenue-by-revenue-type-details" xlink:href="dsgx-20210131.xsd#statement-note-22-segmented-information-segmented-revenue-by-revenue-type-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-22-segmented-information-segmented-revenue-by-revenue-type-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ProfessionalServicesAndOtherMember" xlink:label="dsgx_ProfessionalServicesAndOtherMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LicenseMember" xlink:label="us-gaap_LicenseMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ServiceMember" xlink:label="us-gaap_ServiceMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_ProductOrServiceAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ProductsAndServicesDomain" xlink:to="us-gaap_ServiceMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ProductsAndServicesDomain" xlink:to="dsgx_ProfessionalServicesAndOtherMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ProductsAndServicesDomain" xlink:to="us-gaap_LicenseMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-22-segmented-information-longlived-assets-by-geographical-location-details" xlink:href="dsgx-20210131.xsd#statement-note-22-segmented-information-longlived-assets-by-geographical-location-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-note-22-segmented-information-longlived-assets-by-geographical-location-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd#country_CA" xlink:label="country_CA" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd#country_US" xlink:label="country_US" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_AsiaPacificMember" xlink:label="srt_AsiaPacificMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_StatementGeographicalAxis" xlink:label="srt_StatementGeographicalAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EMEAMember" xlink:label="us-gaap_EMEAMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NoncurrentAssets" xlink:label="us-gaap_NoncurrentAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_StatementGeographicalAxis" xlink:to="srt_SegmentGeographicalDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_StatementGeographicalAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_SegmentGeographicalDomain" xlink:to="country_US" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_StatementGeographicalAxis" xlink:to="srt_SegmentGeographicalDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_SegmentGeographicalDomain" xlink:to="us-gaap_EMEAMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_SegmentGeographicalDomain" xlink:to="country_CA" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_SegmentGeographicalDomain" xlink:to="srt_AsiaPacificMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NoncurrentAssets" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-consolidated-statements-of-comprehensive-income" xlink:href="dsgx-20210131.xsd#statement-consolidated-statements-of-comprehensive-income" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-consolidated-statements-of-comprehensive-income" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ComprehensiveIncomeNetOfTax" xlink:label="us-gaap_ComprehensiveIncomeNetOfTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossTaxAbstract" xlink:label="us-gaap_OtherComprehensiveIncomeLossTaxAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherComprehensiveIncomeLossTaxAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_OtherComprehensiveIncomeLossTaxAbstract" xlink:to="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_OtherComprehensiveIncomeLossTaxAbstract" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTax" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_OtherComprehensiveIncomeLossTaxAbstract" xlink:to="us-gaap_ComprehensiveIncomeNetOfTax" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-consolidated-statements-of-shareholders-equity" xlink:href="dsgx-20210131.xsd#statement-consolidated-statements-of-shareholders-equity" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.descartes.com/20210131/role/statement-consolidated-statements-of-shareholders-equity" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:label="srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:label="srt_CumulativeEffectPeriodOfAdoptionDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueAcquisitions" xlink:label="us-gaap_StockIssuedDuringPeriodValueAcquisitions" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueNewIssues" xlink:label="us-gaap_StockIssuedDuringPeriodValueNewIssues" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_CommonStockMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_AdditionalPaidInCapitalMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_RetainedEarningsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:to="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:to="srt_CumulativeEffectPeriodOfAdoptionDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:to="srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquity" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueNewIssues" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueAcquisitions" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
  </link:definitionLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.LAB
<SEQUENCE>11
<FILENAME>dsgx-20210131_lab.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION LABEL LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!--Generated by ThunderDome XBRL - 01:19AM UTC 2021-03-23--><link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xlink="http://www.w3.org/1999/xlink" 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">
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedLabel" xlink:type="simple"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodEndLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodEndLabel" xlink:type="simple"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodStartLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodStartLabel" xlink:type="simple"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTotalLabel" xlink:type="simple"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTerseLabel" xlink:type="simple"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedNetLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedNetLabel" xlink:type="simple"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/netLabel" xlink:href="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd#netLabel" xlink:type="simple"/>
  <link:labelLink xlink:role="http://www.xbrl.org/2003/role/link" xlink:type="extended">
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DocumentAndEntityInformation" xlink:label="dsgx_DocumentAndEntityInformation" xlink:type="locator"/>
    <link:label xlink:label="dsgx_DocumentAndEntityInformation-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document And Entity Information</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DocumentAndEntityInformation" xlink:to="dsgx_DocumentAndEntityInformation-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Expected dividend yield (%)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-lived intangible assets acquired</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="dsgx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:label xlink:label="dsgx_NoteToFinancialStatementDetailsTextual-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note To Financial Statement Details Textual</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_NoteToFinancialStatementDetailsTextual" xlink:to="dsgx_NoteToFinancialStatementDetailsTextual-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-significant-accounting-policies-policies" xlink:label="dsgx_statement-statement-significant-accounting-policies-policies" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-significant-accounting-policies-policies-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Significant Accounting Policies</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement, Option, Exercise Price Range [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-3-acquisitions-tables" xlink:label="dsgx_statement-statement-note-3-acquisitions-tables" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-3-acquisitions-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 3 - Acquisitions</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate</link:label>
    <link:label xlink:label="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income tax expense based on the above rates</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:to="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-4-fair-value-measurements-tables" xlink:label="dsgx_statement-statement-note-4-fair-value-measurements-tables" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-4-fair-value-measurements-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 4 - Fair Value Measurements</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Risk-free rate (%)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current assets, excluding cash acquired</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-5-trade-accounts-receivable-tables" xlink:label="dsgx_statement-statement-note-5-trade-accounts-receivable-tables" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-5-trade-accounts-receivable-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 5 - Trade Accounts Receivable</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_statement-statement-note-5-trade-accounts-receivable-tables" xlink:to="dsgx_statement-statement-note-5-trade-accounts-receivable-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-6-other-receivables-tables" xlink:label="dsgx_statement-statement-note-6-other-receivables-tables" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-6-other-receivables-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 6 - Other Receivables</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeGainOnDerivative" xlink:label="us-gaap_DerivativeGainOnDerivative" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DerivativeGainOnDerivative-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DerivativeGainOnDerivative</link:label>
    <link:label xlink:label="us-gaap_DerivativeGainOnDerivative-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative, Gain on Derivative</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeGainOnDerivative" xlink:to="us-gaap_DerivativeGainOnDerivative-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement--note-8-property-and-equipment-tables" xlink:label="dsgx_statement-statement--note-8-property-and-equipment-tables" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement--note-8-property-and-equipment-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 8 - Property and Equipment</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-9-intangible-assets-tables" xlink:label="dsgx_statement-statement-note-9-intangible-assets-tables" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-9-intangible-assets-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 9 - Intangible Assets</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NondesignatedMember" xlink:label="us-gaap_NondesignatedMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NondesignatedMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Not Designated as Hedging Instrument [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NondesignatedMember" xlink:to="us-gaap_NondesignatedMember-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-10-goodwill-tables" xlink:label="dsgx_statement-statement-note-10-goodwill-tables" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-10-goodwill-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 10 - Goodwill</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-11-accrued-liabilities-tables" xlink:label="dsgx_statement-statement-note-11-accrued-liabilities-tables" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-11-accrued-liabilities-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 11 - Accrued Liabilities</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxDisclosureTextBlock" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-13-leases-tables" xlink:label="dsgx_statement-statement-note-13-leases-tables" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-13-leases-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 13 - Leases</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-15-share-capital-tables" xlink:label="dsgx_statement-statement-note-15-share-capital-tables" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-15-share-capital-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 15 - Share Capital</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-16-earnings-per-share-tables" xlink:label="dsgx_statement-statement-note-16-earnings-per-share-tables" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-16-earnings-per-share-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 16 - Earnings Per Share</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationAxis" xlink:label="us-gaap_HedgingDesignationAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_HedgingDesignationAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Hedging Designation [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_HedgingDesignationAxis" xlink:to="us-gaap_HedgingDesignationAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-17-stockbased-compensation-plans-tables" xlink:label="dsgx_statement-statement-note-17-stockbased-compensation-plans-tables" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-17-stockbased-compensation-plans-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 17 - Stock-based Compensation Plans</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Expected volatility (%)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationDomain" xlink:label="us-gaap_HedgingDesignationDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_HedgingDesignationDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Hedging Designation [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_HedgingDesignationDomain" xlink:to="us-gaap_HedgingDesignationDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-18-income-taxes-tables" xlink:label="dsgx_statement-statement-note-18-income-taxes-tables" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-18-income-taxes-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 18 - Income Taxes</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DesignatedAsHedgingInstrumentMember" xlink:label="us-gaap_DesignatedAsHedgingInstrumentMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DesignatedAsHedgingInstrumentMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Designated as Hedging Instrument [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DesignatedAsHedgingInstrumentMember" xlink:to="us-gaap_DesignatedAsHedgingInstrumentMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LiabilitiesCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LiabilitiesCurrent</link:label>
    <link:label xlink:label="us-gaap_LiabilitiesCurrent-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Liabilities, Current, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_LiabilitiesCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-19-contract-balances-performance-obligations-and-contract-costs-tables" xlink:label="dsgx_statement-statement-note-19-contract-balances-performance-obligations-and-contract-costs-tables" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-19-contract-balances-performance-obligations-and-contract-costs-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 19 - Contract Balances, Performance Obligations and Contract Costs</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_statement-statement-note-19-contract-balances-performance-obligations-and-contract-costs-tables" xlink:to="dsgx_statement-statement-note-19-contract-balances-performance-obligations-and-contract-costs-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-20-other-charges-tables" xlink:label="dsgx_statement-statement-note-20-other-charges-tables" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-20-other-charges-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 20 - Other Charges</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-21-supplemental-cash-flow-information-tables" xlink:label="dsgx_statement-statement-note-21-supplemental-cash-flow-information-tables" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-21-supplemental-cash-flow-information-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 21 - Supplemental Cash Flow Information</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-22-segmented-information-tables" xlink:label="dsgx_statement-statement-note-22-segmented-information-tables" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-22-segmented-information-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 22 - Segmented Information</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Expected option life (years) (Year)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 3 - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common shares issued</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details-parentheticals-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 3 - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details) (Parentheticals)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Purchase price consideration</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Combination, Consideration Transferred, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-3-acquisitions-acquired-intangible-assets-useful-lives-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 3 - Acquisitions - Acquired Intangible Assets Useful Lives (Details)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Weighted-Average Remaining Contractual, PSU (Year)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period, Fair Value</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-3-acquisitions-pro-forma-results-of-operations-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 3 - Acquisitions - Pro Forma Results of Operations (Details)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-4-fair-value-measurements-derivative-instruments-at-fair-value-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 4 - Fair Value Measurements - Derivative Instruments at Fair Value (Details)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Share-based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-5-trade-accounts-receivable-trade-receivables-details" xlink:label="dsgx_statement-statement-note-5-trade-accounts-receivable-trade-receivables-details" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-5-trade-accounts-receivable-trade-receivables-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 5 - Trade Accounts Receivable - Trade Receivables (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_statement-statement-note-5-trade-accounts-receivable-trade-receivables-details" xlink:to="dsgx_statement-statement-note-5-trade-accounts-receivable-trade-receivables-details-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-5-trade-accounts-receivable-provision-for-credit-losses-details" xlink:label="dsgx_statement-statement-note-5-trade-accounts-receivable-provision-for-credit-losses-details" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-5-trade-accounts-receivable-provision-for-credit-losses-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 5 - Trade Accounts Receivable - Provision for Credit Losses (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_statement-statement-note-5-trade-accounts-receivable-provision-for-credit-losses-details" xlink:to="dsgx_statement-statement-note-5-trade-accounts-receivable-provision-for-credit-losses-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Aggregate Intrinsic Value, PSU</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contingent consideration</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-6-other-receivables-other-receivables-details" xlink:label="dsgx_statement-statement-note-6-other-receivables-other-receivables-details" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-6-other-receivables-other-receivables-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 6 - Other Receivables - Other Receivables (Details)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-8-property-and-equipment-property-and-equipment-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 8 - Property and Equipment - Property and Equipment (Details)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-9-intangible-assets-intangible-assets-details" xlink:label="dsgx_statement-statement-note-9-intangible-assets-intangible-assets-details" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-9-intangible-assets-intangible-assets-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 9 - Intangible Assets - Intangible Assets (Details)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement, Option, Activity [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-10-goodwill-goodwill-details" xlink:label="dsgx_statement-statement-note-10-goodwill-goodwill-details" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-10-goodwill-goodwill-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 10 - Goodwill - Goodwill (Details)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-11-accrued-liabilities-accrued-liabilities-details" xlink:label="dsgx_statement-statement-note-11-accrued-liabilities-accrued-liabilities-details" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-11-accrued-liabilities-accrued-liabilities-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 11 - Accrued Liabilities - Accrued Liabilities (Details)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" xlink:label="us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement, Performance Shares, Outstanding Activity [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" xlink:to="us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-13-leases-components-of-operating-lease-expense-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 13 - Leases - Components of Operating Lease Expense (Details)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">PSUs Granted, Weighted-Average Granted Date Fair Value (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-13-leases-maturities-of-operating-lease-liabilities-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 13 - Leases - Maturities of Operating Lease Liabilities (Details)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-15-share-capital-common-shares-outstanding-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 15 - Share Capital - Common Shares Outstanding (Details)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:to="us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Weighted-Average Grant Date Fair Value, PSU (in dollars per share)</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Weighted-Average Grant Date Fair Value, PSU (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-16-earnings-per-share-computation-of-basic-and-diluted-earnings-per-share-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 16 - Earnings Per Share - Computation of Basic and Diluted Earnings Per Share (Details)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Basic (in dollars per share)</link:label>
    <link:label xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic" xlink:to="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-17-stockbased-compensation-plans-total-estimated-stockbased-compensation-expense-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 17 - Stock-based Compensation Plans - Total Estimated Stock-based Compensation Expense (Details)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-17-stockbased-compensation-plans-assumptions-used-in-blackscholes-model-for-each-grant-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 17 - Stock-based Compensation Plans - Assumptions Used in Black-scholes Model for Each Grant (Details)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-option-activity-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 17 - Stock-based Compensation Plans - Summary of Option Activity (Details)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Foreign currency translation adjustment, net of income tax (recovery) expense of $290 for the year ended January 31, 2021 (January 31, 2020 &#8211; ($132); January 31, 2019 &#8211; ($44))</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:to="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-17-stockbased-compensation-plans-options-outstanding-and-options-exercisable-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 17 - Stock-based Compensation Plans - Options Outstanding and Options Exercisable (Details)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Nonvested Share Activity [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock" xlink:to="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-nonvested-share-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 17 - Stock-based Compensation Plans - Summary of Nonvested Share (Details)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-performance-share-units-activity-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 17 - Stock-based Compensation Plans Summary of Performance Share Units Activity (Details)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Number of PSUs Granted (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-restricted-share-units-activity-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 17 - Stock-based Compensation Plans - Summary of Restricted Share Units Activity (Details)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-crsu-plan-activity-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 17 - Stock-based Compensation Plans - Summary of CRSU Plan Activity (Details)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Diluted (in dollars per share)</link:label>
    <link:label xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted" xlink:to="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Vested or expected to vest, weighted-average remaining contractual life (Year)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-18-income-taxes-income-loss-before-income-taxes-earned-by-tax-jurisdictions-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 18 - Income Taxes - Income (Loss) Before Income Taxes Earned by Tax Jurisdictions (Details)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Vested or expected to vest, RSU (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-18-income-taxes-income-tax-expense-recovery-incurred-by-jurisdictions-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 18 - Income Taxes - Income Tax Expense (Recovery) Incurred by Jurisdictions (Details)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-18-income-taxes-components-of-deferred-income-tax-assets-and-liabilities-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 18 - Income Taxes - Components of Deferred Income Tax Assets and Liabilities (Details)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-18-income-taxes-provision-recovery-for-income-taxes-from-the-expected-provision-at-the-statutory-rates-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 18 - Income Taxes - Provision (Recovery) for Income Taxes from the Expected Provision at the Statutory Rates (Details)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-18-income-taxes-income-tax-loss-carryforwards-expiration-dates-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 18 - Income Taxes - Income Tax Loss Carryforwards Expiration Dates (Details)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Vested or expected to vest, shares (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-18-income-taxes-reconciliation-of-the-total-estimated-liability-associated-with-uncertain-tax-provisions-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 18 - Income Taxes - Reconciliation of the Total Estimated Liability Associated With Uncertain Tax Provisions (Details)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Vested or expected to vest, weighted-average exercise price (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-19-contract-balances-performance-obligations-and-contract-costs-changes-in-deferred-revenue-and-contract-assets-details" xlink:label="dsgx_statement-statement-note-19-contract-balances-performance-obligations-and-contract-costs-changes-in-deferred-revenue-and-contract-assets-details" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-19-contract-balances-performance-obligations-and-contract-costs-changes-in-deferred-revenue-and-contract-assets-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 19 - Contract Balances, Performance Obligations and Contract Costs - Changes in Deferred Revenue and Contract Assets (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_statement-statement-note-19-contract-balances-performance-obligations-and-contract-costs-changes-in-deferred-revenue-and-contract-assets-details" xlink:to="dsgx_statement-statement-note-19-contract-balances-performance-obligations-and-contract-costs-changes-in-deferred-revenue-and-contract-assets-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTax" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTax-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OtherComprehensiveIncomeLossNetOfTax</link:label>
    <link:label xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTax-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total other comprehensive income (loss)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherComprehensiveIncomeLossNetOfTax" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTax-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Vested or expected to vest, aggregate intrinsic value</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-20-other-charges-other-charges-included-in-consolidated-statements-of-operations-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 20 - Other Charges - Other Charges Included in Consolidated Statements of Operations (Details)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Exercisable, weighted-average exercise price (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-20-other-charges-restructuring-provision-details" xlink:label="dsgx_statement-statement-note-20-other-charges-restructuring-provision-details" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-20-other-charges-restructuring-provision-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 20 - Other Charges - Restructuring Provision (Details)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Exercisable, weighted-average remaining contractual life (Year)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Net income</link:label>
    <link:label xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:to="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-21-supplemental-cash-flow-information-cash-flow-changes-in-operating-asset-and-liabilities-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 21 - Supplemental Cash Flow Information - Cash Flow Changes in Operating Asset and Liabilities (Details)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" xlink:label="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Combination, Pro Forma Information, Revenue of Acquiree since Acquisition Date, Actual</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" xlink:to="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Exercisable, aggregate intrinsic value</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-22-segmented-information-segmented-revenue-by-geographical-location-of-customer-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 22 - Segmented Information - Segmented Revenue by Geographical Location of Customer (Details)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1</link:label>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested in Period, Fair Value</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-22-segmented-information-segmented-revenue-by-revenue-type-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 22 - Segmented Information - Segmented Revenue by Revenue Type (Details)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:label xlink:label="dsgx_statement-statement-note-22-segmented-information-longlived-assets-by-geographical-location-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 22 - Segmented Information - Long-lived Assets by Geographical Location (Details)</link:label>
    <link:labelArc 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-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period, Intrinsic Value</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NotesToFinancialStatements" xlink:label="dsgx_NotesToFinancialStatements" xlink:type="locator"/>
    <link:label xlink:label="dsgx_NotesToFinancialStatements-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Notes To Financial Statements</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_NotesToFinancialStatements" xlink:to="dsgx_NotesToFinancialStatements-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:label="us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessAcquisitionProFormaInformationTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Acquisition, Pro Forma Information [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:to="us-gaap_BusinessAcquisitionProFormaInformationTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="dsgx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:label xlink:label="dsgx_NotesToFinancialStatementsAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Notes To Financial Statements [Abstract]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_NotesToFinancialStatementsAbstract" xlink:to="dsgx_NotesToFinancialStatementsAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Exercisable, shares (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Revenues</link:label>
    <link:label xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessAcquisitionsProFormaRevenue</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:to="us-gaap_BusinessAcquisitionsProFormaRevenue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Weighted-Average Remaining Contractual Life (Year)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Aggregate Intrinsic Value</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Granted, Weighted- Average Grant-Date Fair Value per Share (in dollars per share)</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Vested, Weighted- Average Grant-Date Fair Value per Share (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Forfeited, Weighted- Average Grant-Date Fair Value per Share (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue</link:label>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Weighted- Average Grant-Date Fair Value per Share (in dollars per share)</link:label>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Weighted- Average Grant-Date Fair Value per Share (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares</link:label>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares-label" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Vested (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares</link:label>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Forfeited (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares</link:label>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Stock Options Outstanding (in shares)</link:label>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Stock Options Outstanding (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Weighted-Average Exercise Price (in dollars per share)</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Weighted-Average Exercise Price (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredShareUnitsRedeemedAndSettledInCash" xlink:label="dsgx_DeferredShareUnitsRedeemedAndSettledInCash" xlink:type="locator"/>
    <link:label xlink:label="dsgx_DeferredShareUnitsRedeemedAndSettledInCash-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">dsgx_DeferredShareUnitsRedeemedAndSettledInCash</link:label>
    <link:label xlink:label="dsgx_DeferredShareUnitsRedeemedAndSettledInCash-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred Share Units Redeemed and Settled in Cash (in shares)</link:label>
    <link:label xlink:label="dsgx_DeferredShareUnitsRedeemedAndSettledInCash-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the number of deferred share units redeemed and settled in cash.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DeferredShareUnitsRedeemedAndSettledInCash" xlink:to="dsgx_DeferredShareUnitsRedeemedAndSettledInCash-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Forfeited, weighted-average exercise price (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred revenue (Note 19)</link:label>
    <link:label xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Current</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Number of Units Outstanding (in shares)</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Number of Units Outstanding (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Granted, weighted-average exercise price (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Exercised, weighted-average exercise price (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccruedLiabilitiesCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accrued liabilities (Note 11)</link:label>
    <link:label xlink:label="us-gaap_AccruedLiabilitiesCurrent-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Accrued Liabilities, Current, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="us-gaap_AccruedLiabilitiesCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accrued compensation and benefits</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:to="us-gaap_EmployeeRelatedLiabilitiesCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_AljexSoftwareIncMember" xlink:label="dsgx_AljexSoftwareIncMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_AljexSoftwareIncMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Aljex Software, Inc. [Member]</link:label>
    <link:label xlink:label="dsgx_AljexSoftwareIncMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents information about the acquisition of Aljex Software, Inc.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_AljexSoftwareIncMember" xlink:to="dsgx_AljexSoftwareIncMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedIncomeTaxesCurrent" xlink:label="us-gaap_AccruedIncomeTaxesCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccruedIncomeTaxesCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income taxes payable</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedIncomeTaxesCurrent" xlink:to="us-gaap_AccruedIncomeTaxesCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeasesTextBlock" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeasesTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Leases [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeasesTextBlock" xlink:to="us-gaap_LesseeOperatingLeasesTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccountsPayableCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts payable</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsPayableCurrent" xlink:to="us-gaap_AccountsPayableCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number, Ending Balance (in shares)</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Number of Stock Options Outstanding (in shares)</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Number of Stock Options Outstanding (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" xlink:label="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Loans, Notes, Trade and Other Receivables Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" xlink:to="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CreditFacilityAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Credit Facility [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CreditFacilityDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Credit Facility [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="us-gaap_CreditFacilityDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other accrued liabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAccruedLiabilitiesCurrent" xlink:to="us-gaap_OtherAccruedLiabilitiesCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PolicyTextBlockAbstract" xlink:label="us-gaap_PolicyTextBlockAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PolicyTextBlockAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_PolicyTextBlockAbstract</link:label>
    <link:label xlink:label="us-gaap_PolicyTextBlockAbstract-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounting Policies</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PolicyTextBlockAbstract" xlink:to="us-gaap_PolicyTextBlockAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_TradeNamesMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trade Names [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TradeNamesMember" xlink:to="us-gaap_TradeNamesMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Performance units issued (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Available for Grant (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedProfessionalFeesCurrent" xlink:label="us-gaap_AccruedProfessionalFeesCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccruedProfessionalFeesCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accrued professional fees</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedProfessionalFeesCurrent" xlink:to="us-gaap_AccruedProfessionalFeesCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BesttransportMember" xlink:label="dsgx_BesttransportMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_BesttransportMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">BestTransport [Member]</link:label>
    <link:label xlink:label="dsgx_BesttransportMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents BestTransport.com Inc.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_BesttransportMember" xlink:to="dsgx_BesttransportMember-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_StepcomMember" xlink:label="dsgx_StepcomMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_StepcomMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">STEPcom [Member]</link:label>
    <link:label xlink:label="dsgx_StepcomMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents STEPcom.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_StepcomMember" xlink:to="dsgx_StepcomMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_PaymentsToAcquirePropertyPlantAndEquipment</link:label>
    <link:label xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Additions to property and equipment</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Dilutive effect of employee stock options (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Core Transport Technologies NZ Limited [Member]</link:label>
    <link:label xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents Core Transport Technologies NZ Limited ("CORE").</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:to="dsgx_CoreTransportTechnologiesNzLimitedMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod</link:label>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Expiration Period (Year)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets" xlink:type="locator"/>
    <link:label xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets</link:label>
    <link:label xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Right-of-use assets</link:label>
    <link:label xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount of right-of-use assets acquired at the acquisition date.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets" xlink:to="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_The2020AcquisitionsMember" xlink:label="dsgx_The2020AcquisitionsMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_The2020AcquisitionsMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">The 2020 Acquisitions [Member]</link:label>
    <link:label xlink:label="dsgx_The2020AcquisitionsMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents information pertaining to the 2020 acquisitions (Visual Compliance, CORE, STEPcom, and BestTransport).</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_The2020AcquisitionsMember" xlink:to="dsgx_The2020AcquisitionsMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period (Year)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">WEIGHTED AVERAGE SHARES OUTSTANDING (thousands)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_EquipmentInstalledWithCustomersMember" xlink:label="dsgx_EquipmentInstalledWithCustomersMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_EquipmentInstalledWithCustomersMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equipment Installed With Customers [Member]</link:label>
    <link:label xlink:label="dsgx_EquipmentInstalledWithCustomersMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents equipment installed with customers.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_EquipmentInstalledWithCustomersMember" xlink:to="dsgx_EquipmentInstalledWithCustomersMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NoncompeteAgreementsMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Noncompete Agreements [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NoncompeteAgreementsMember" xlink:to="us-gaap_NoncompeteAgreementsMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="us-gaap_IncomeTaxesPaidNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxesPaidNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash paid during the year for income taxes</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxesPaidNet" xlink:to="us-gaap_IncomeTaxesPaidNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillDisclosureTextBlock" xlink:label="us-gaap_GoodwillDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_GoodwillDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillDisclosureTextBlock" xlink:to="us-gaap_GoodwillDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_EmeaIncomeTaxAuthorityMember" xlink:label="dsgx_EmeaIncomeTaxAuthorityMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_EmeaIncomeTaxAuthorityMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">EMEA Income Tax Authority [Member]</link:label>
    <link:label xlink:label="dsgx_EmeaIncomeTaxAuthorityMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents income tax authority for EMEA.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_EmeaIncomeTaxAuthorityMember" xlink:to="dsgx_EmeaIncomeTaxAuthorityMember-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions" xlink:label="dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions" xlink:type="locator"/>
    <link:label xlink:label="dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions</link:label>
    <link:label xlink:label="dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Increase (decrease) in accruals for uncertain tax positions</link:label>
    <link:label xlink:label="dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">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 .</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions" xlink:to="dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LiabilitiesCurrentAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">CURRENT LIABILITIES</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LiabilitiesCurrentAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DevelopedTechnologyRightsMember" xlink:label="us-gaap_DevelopedTechnologyRightsMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DevelopedTechnologyRightsMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Developed Technology Rights [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DevelopedTechnologyRightsMember" xlink:to="us-gaap_DevelopedTechnologyRightsMember-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_AsiaPacificIncomeTaxAuthorityMember" xlink:label="dsgx_AsiaPacificIncomeTaxAuthorityMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_AsiaPacificIncomeTaxAuthorityMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asia Pacific Income Tax Authority [Member]</link:label>
    <link:label xlink:label="dsgx_AsiaPacificIncomeTaxAuthorityMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents information related to Asia Pacific income tax authority</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_AsiaPacificIncomeTaxAuthorityMember" xlink:to="dsgx_AsiaPacificIncomeTaxAuthorityMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SupplementalCashFlowInformationAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Supplemental disclosure of cash flow information:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_SupplementalCashFlowInformationAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_Assets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_Assets</link:label>
    <link:label xlink:label="us-gaap_Assets-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Assets, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Assets" xlink:to="us-gaap_Assets-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PlanNameAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Plan Name [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PlanNameDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Plan Name [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PlanNameDomain" xlink:to="us-gaap_PlanNameDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized</link:label>
    <link:label xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1</link:label>
    <link:label xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition (Year)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CustomerRelationshipsMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer Relationships [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CustomerRelationshipsMember" xlink:to="us-gaap_CustomerRelationshipsMember-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_PeoplevoxMember" xlink:label="dsgx_PeoplevoxMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_PeoplevoxMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Peoplevox [Member]</link:label>
    <link:label xlink:label="dsgx_PeoplevoxMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Related to Peoplevox.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_PeoplevoxMember" xlink:to="dsgx_PeoplevoxMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions</link:label>
    <link:label xlink:label="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement, Exercise of Option, Tax Benefit</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_KontainersMember" xlink:label="dsgx_KontainersMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_KontainersMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Kontainers [Member]</link:label>
    <link:label xlink:label="dsgx_KontainersMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Related to Kontainers.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_KontainersMember" xlink:to="dsgx_KontainersMember-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredTaxCharges" xlink:label="dsgx_DeferredTaxCharges" xlink:type="locator"/>
    <link:label xlink:label="dsgx_DeferredTaxCharges-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred tax charge</link:label>
    <link:label xlink:label="dsgx_DeferredTaxCharges-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the amount of deferred tax charges recorded during the period.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DeferredTaxCharges" xlink:to="dsgx_DeferredTaxCharges-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange" xlink:label="dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange" xlink:type="locator"/>
    <link:label xlink:label="dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Effect of movements in foreign exchange</link:label>
    <link:label xlink:label="dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange</link:label>
    <link:label xlink:label="dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount of effects of foreign exchange currency movement against the allowance.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange" xlink:to="dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredIncomeTaxAssetsNet-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">DEFERRED INCOME TAXES</link:label>
    <link:label xlink:label="us-gaap_DeferredIncomeTaxAssetsNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredIncomeTaxAssetsNet</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxAssetsNet" xlink:to="us-gaap_DeferredIncomeTaxAssetsNet-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShipTrackMember" xlink:label="dsgx_ShipTrackMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_ShipTrackMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">ShipTrack [Member]</link:label>
    <link:label xlink:label="dsgx_ShipTrackMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Related to ShipTrack.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ShipTrackMember" xlink:to="dsgx_ShipTrackMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CapitalizedContractCostNet" xlink:label="us-gaap_CapitalizedContractCostNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CapitalizedContractCostNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_CapitalizedContractCostNet</link:label>
    <link:label xlink:label="us-gaap_CapitalizedContractCostNet-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Capitalized Contract Cost, Net, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CapitalizedContractCostNet" xlink:to="us-gaap_CapitalizedContractCostNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets by Major Class [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_The2021AcquisitionsMember" xlink:label="dsgx_The2021AcquisitionsMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_The2021AcquisitionsMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">The 2021 Acquisitions [Member]</link:label>
    <link:label xlink:label="dsgx_The2021AcquisitionsMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Related to the 2021 acquisitions.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_The2021AcquisitionsMember" xlink:to="dsgx_The2021AcquisitionsMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Major Class Name [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:to="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerAssetNet" xlink:label="us-gaap_ContractWithCustomerAssetNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ContractWithCustomerAssetNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ContractWithCustomerAssetNet</link:label>
    <link:label xlink:label="us-gaap_ContractWithCustomerAssetNet-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contract with Customer, Asset, after Allowance for Credit Loss, Total</link:label>
    <link:label xlink:label="us-gaap_ContractWithCustomerAssetNet-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Balance</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerAssetNet" xlink:to="us-gaap_ContractWithCustomerAssetNet-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xlink:label="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xlink:type="locator"/>
    <link:label xlink:label="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized</link:label>
    <link:label xlink:label="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred Share Units Nonvested Total Compensation Cost Not Yet Recognized</link:label>
    <link:label xlink:label="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The deferred share units nonvested, total compensation cost not yet recognized.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xlink:to="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" xlink:label="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Description and Basis of Presentation [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" xlink:to="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Type [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_COREKontainersAndShipTrackMember" xlink:label="dsgx_COREKontainersAndShipTrackMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_COREKontainersAndShipTrackMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">CORE, Kontainers and ShipTrack [Member]</link:label>
    <link:label xlink:label="dsgx_COREKontainersAndShipTrackMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Related to CORE, Kontainers and ShipTrack.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_COREKontainersAndShipTrackMember" xlink:to="dsgx_COREKontainersAndShipTrackMember-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_The2020BaseShelfProspectusMember" xlink:label="dsgx_The2020BaseShelfProspectusMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_The2020BaseShelfProspectusMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">The 2020 Base Shelf Prospectus [Member]</link:label>
    <link:label xlink:label="dsgx_The2020BaseShelfProspectusMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Related to the 2020 Base Shelf Prospectus.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_The2020BaseShelfProspectusMember" xlink:to="dsgx_The2020BaseShelfProspectusMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AwardTypeAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Type [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_AwardTypeAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_PSUsAndRSUsMember" xlink:label="dsgx_PSUsAndRSUsMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_PSUsAndRSUsMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">PSUs and RSUs [Member]</link:label>
    <link:label xlink:label="dsgx_PSUsAndRSUsMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Related to PSUs and RSUs.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_PSUsAndRSUsMember" xlink:to="dsgx_PSUsAndRSUsMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NetIncomeLoss-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net income</link:label>
    <link:label xlink:label="us-gaap_NetIncomeLoss-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">NET INCOME</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Intangible assets, amortization cost</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FiniteLivedIntangibleAssetsNet</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Net, Ending Balance</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Intangible assets. net</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">INTANGIBLE ASSETS, NET (Note 9)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RestrictedStockUnitsRSUMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restricted Stock Units (RSUs) [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestrictedStockUnitsRSUMember" xlink:to="us-gaap_RestrictedStockUnitsRSUMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Intangible assets, cost</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember" xlink:label="dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Volunatry Change Elected to Adopt in Accounting for Deferred Revenue for Income Tax Purposes in the United States [Member]</link:label>
    <link:label xlink:label="dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Related to accounting changes.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember" xlink:to="dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredTaxAssetsCorporateMinimumTaxes" xlink:label="dsgx_DeferredTaxAssetsCorporateMinimumTaxes" xlink:type="locator"/>
    <link:label xlink:label="dsgx_DeferredTaxAssetsCorporateMinimumTaxes-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Corporate minimum taxes</link:label>
    <link:label xlink:label="dsgx_DeferredTaxAssetsCorporateMinimumTaxes-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from corporate minimum taxes.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DeferredTaxAssetsCorporateMinimumTaxes" xlink:to="dsgx_DeferredTaxAssetsCorporateMinimumTaxes-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PerformanceSharesMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Performance Shares [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PerformanceSharesMember" xlink:to="us-gaap_PerformanceSharesMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EmployeeStockOptionMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement, Option [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeStockOptionMember" xlink:to="us-gaap_EmployeeStockOptionMember-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_TaxYear2026Member" xlink:label="dsgx_TaxYear2026Member" xlink:type="locator"/>
    <link:label xlink:label="dsgx_TaxYear2026Member-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Tax Year 2026 [Member]</link:label>
    <link:label xlink:label="dsgx_TaxYear2026Member-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Related to tax year 2026.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_TaxYear2026Member" xlink:to="dsgx_TaxYear2026Member-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Antidilutive Securities [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_AfterTaxYear2026Member" xlink:label="dsgx_AfterTaxYear2026Member" xlink:type="locator"/>
    <link:label xlink:label="dsgx_AfterTaxYear2026Member-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">After Tax Year 2026 [Member]</link:label>
    <link:label xlink:label="dsgx_AfterTaxYear2026Member-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Related to after tax year 2026.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_AfterTaxYear2026Member" xlink:to="dsgx_AfterTaxYear2026Member-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AntidilutiveSecuritiesNameDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Antidilutive Securities, Name [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:to="us-gaap_AntidilutiveSecuritiesNameDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments" xlink:label="us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments</link:label>
    <link:label xlink:label="us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Adjustments on account of foreign exchange</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments" xlink:to="us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillAcquiredDuringPeriod" xlink:label="us-gaap_GoodwillAcquiredDuringPeriod" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_GoodwillAcquiredDuringPeriod-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_GoodwillAcquiredDuringPeriod</link:label>
    <link:label xlink:label="us-gaap_GoodwillAcquiredDuringPeriod-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill Acquired During Period</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillAcquiredDuringPeriod" xlink:to="us-gaap_GoodwillAcquiredDuringPeriod-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationDisclosureTextBlock" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationDisclosureTextBlock" xlink:to="us-gaap_BusinessCombinationDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Commitments and Contingencies Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accumulated amortization</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Business Acquisitions, by Acquisition [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PropertyPlantAndEquipmentNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">PROPERTY AND EQUIPMENT, NET (Note 8)</link:label>
    <link:label xlink:label="us-gaap_PropertyPlantAndEquipmentNet-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentNet" xlink:to="us-gaap_PropertyPlantAndEquipmentNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_Goodwill-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">GOODWILL (Note 10)</link:label>
    <link:label xlink:label="us-gaap_Goodwill-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill</link:label>
    <link:label xlink:label="us-gaap_Goodwill-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Balance</link:label>
    <link:label xlink:label="us-gaap_Goodwill-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Balance</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Goodwill" xlink:to="us-gaap_Goodwill-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_Fiscal2021RestructuringPlanMember" xlink:label="dsgx_Fiscal2021RestructuringPlanMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_Fiscal2021RestructuringPlanMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fiscal 2021 Restructuring Plan [Member]</link:label>
    <link:label xlink:label="dsgx_Fiscal2021RestructuringPlanMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Related to the Fiscal 2021 Restructuring Plan.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_Fiscal2021RestructuringPlanMember" xlink:to="dsgx_Fiscal2021RestructuringPlanMember-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VitaDexSolutionsLLCMember" xlink:label="dsgx_VitaDexSolutionsLLCMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_VitaDexSolutionsLLCMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">VitaDex Solutions, LLC [Member]</link:label>
    <link:label xlink:label="dsgx_VitaDexSolutionsLLCMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Related to VitaDex Solutions, LLC.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_VitaDexSolutionsLLCMember" xlink:to="dsgx_VitaDexSolutionsLLCMember-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CRSUAwardsForfeitedInPeriod" xlink:label="dsgx_CRSUAwardsForfeitedInPeriod" xlink:type="locator"/>
    <link:label xlink:label="dsgx_CRSUAwardsForfeitedInPeriod-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">dsgx_CRSUAwardsForfeitedInPeriod</link:label>
    <link:label xlink:label="dsgx_CRSUAwardsForfeitedInPeriod-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Number of Units Forfeited, CRSU (in shares)</link:label>
    <link:label xlink:label="dsgx_CRSUAwardsForfeitedInPeriod-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Related to CRSU awards forfeited in period.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CRSUAwardsForfeitedInPeriod" xlink:to="dsgx_CRSUAwardsForfeitedInPeriod-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PropertyPlantAndEquipmentGross-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cost</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentGross" xlink:to="us-gaap_PropertyPlantAndEquipmentGross-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CanadaRevenueAgencyMember" xlink:label="us-gaap_CanadaRevenueAgencyMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CanadaRevenueAgencyMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Canada Revenue Agency [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CanadaRevenueAgencyMember" xlink:to="us-gaap_CanadaRevenueAgencyMember-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BusinessCombinationConsiderationTransferredPayable" xlink:label="dsgx_BusinessCombinationConsiderationTransferredPayable" xlink:type="locator"/>
    <link:label xlink:label="dsgx_BusinessCombinationConsiderationTransferredPayable-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Consideration payable</link:label>
    <link:label xlink:label="dsgx_BusinessCombinationConsiderationTransferredPayable-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount of liabilities incurred by the acquirer as part of consideration payable transferred in a business combination.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_BusinessCombinationConsiderationTransferredPayable" xlink:to="dsgx_BusinessCombinationConsiderationTransferredPayable-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeAssets" xlink:label="us-gaap_DerivativeAssets" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DerivativeAssets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity contracts</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeAssets" xlink:to="us-gaap_DerivativeAssets-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">INVESTING ACTIVITIES</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInOperatingCapital" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInOperatingCapital-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncreaseDecreaseInOperatingCapital</link:label>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInOperatingCapital-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Changes in operating assets and liabilities (Note 21)</link:label>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInOperatingCapital-label" xlink:role="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Operating Capital, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapital" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapital-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ExistingTechnologyMember" xlink:label="dsgx_ExistingTechnologyMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_ExistingTechnologyMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Existing Technology [Member]</link:label>
    <link:label xlink:label="dsgx_ExistingTechnologyMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents information about existing technology.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ExistingTechnologyMember" xlink:to="dsgx_ExistingTechnologyMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EarningsPerShareAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Earnings per share</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="us-gaap_EarningsPerShareTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EarningsPerShareTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Earnings Per Share [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareTextBlock" xlink:to="us-gaap_EarningsPerShareTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DirectorsAndOfficersMember" xlink:label="dsgx_DirectorsAndOfficersMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_DirectorsAndOfficersMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Directors and Officers [Member]</link:label>
    <link:label xlink:label="dsgx_DirectorsAndOfficersMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Titles of individuals' stock options.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DirectorsAndOfficersMember" xlink:to="dsgx_DirectorsAndOfficersMember-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_TheAccountingStandardsUpdate201616Member" xlink:label="dsgx_TheAccountingStandardsUpdate201616Member" xlink:type="locator"/>
    <link:label xlink:label="dsgx_TheAccountingStandardsUpdate201616Member-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">The Accounting Standards Update 2016-16 [Member]</link:label>
    <link:label xlink:label="dsgx_TheAccountingStandardsUpdate201616Member-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Related to the Accounting Standards Update 2016-16.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_TheAccountingStandardsUpdate201616Member" xlink:to="dsgx_TheAccountingStandardsUpdate201616Member-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd#country_CA" xlink:label="country_CA" xlink:type="locator"/>
    <link:label xlink:label="country_CA-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">CANADA</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="country_CA" xlink:to="country_CA-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BaseAnnualFeePercent" xlink:label="dsgx_BaseAnnualFeePercent" xlink:type="locator"/>
    <link:label xlink:label="dsgx_BaseAnnualFeePercent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">dsgx_BaseAnnualFeePercent</link:label>
    <link:label xlink:label="dsgx_BaseAnnualFeePercent-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Base Annual Fee, Percent</link:label>
    <link:label xlink:label="dsgx_BaseAnnualFeePercent-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The base annual fee percentage required for Directors participating in a share-based compensation plan.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_BaseAnnualFeePercent" xlink:to="dsgx_BaseAnnualFeePercent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income (loss) from continuing operations</link:label>
    <link:label xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income before income taxes</link:label>
    <link:label xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">INCOME BEFORE INCOME TAXES</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncomeTaxExpenseBenefit</link:label>
    <link:label xlink:label="us-gaap_IncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income tax expense</link:label>
    <link:label xlink:label="us-gaap_IncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Income Tax Expense (Benefit), Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxExpenseBenefit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accrued liabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilities-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredShareUnitPlanMember" xlink:label="dsgx_DeferredShareUnitPlanMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_DeferredShareUnitPlanMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Share Unit Plan [Member]</link:label>
    <link:label xlink:label="dsgx_DeferredShareUnitPlanMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">A plan with deferred share units.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DeferredShareUnitPlanMember" xlink:to="dsgx_DeferredShareUnitPlanMember-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CashsettledRestrictedSharePlanMember" xlink:label="dsgx_CashsettledRestrictedSharePlanMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_CashsettledRestrictedSharePlanMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash-Settled Restricted Share Plan [Member]</link:label>
    <link:label xlink:label="dsgx_CashsettledRestrictedSharePlanMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">A cash-settled restricted share plan adopted by an entity.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CashsettledRestrictedSharePlanMember" xlink:to="dsgx_CashsettledRestrictedSharePlanMember-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CashSettledRestrictedShareUnitsVestingPeriod" xlink:label="dsgx_CashSettledRestrictedShareUnitsVestingPeriod" xlink:type="locator"/>
    <link:label xlink:label="dsgx_CashSettledRestrictedShareUnitsVestingPeriod-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">dsgx_CashSettledRestrictedShareUnitsVestingPeriod</link:label>
    <link:label xlink:label="dsgx_CashSettledRestrictedShareUnitsVestingPeriod-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash Settled Restricted Share Units, Vesting Period (Year)</link:label>
    <link:label xlink:label="dsgx_CashSettledRestrictedShareUnitsVestingPeriod-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">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.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CashSettledRestrictedShareUnitsVestingPeriod" xlink:to="dsgx_CashSettledRestrictedShareUnitsVestingPeriod-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Accounts payable</link:label>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncreaseDecreaseInAccountsPayable</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingExpenses" xlink:label="us-gaap_OperatingExpenses" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingExpenses-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OperatingExpenses</link:label>
    <link:label xlink:label="us-gaap_OperatingExpenses-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Operating Expenses, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingExpenses" xlink:to="us-gaap_OperatingExpenses-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentTerm" xlink:label="us-gaap_DebtInstrumentTerm" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DebtInstrumentTerm-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DebtInstrumentTerm</link:label>
    <link:label xlink:label="us-gaap_DebtInstrumentTerm-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Debt Instrument, Term (Year)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentTerm" xlink:to="us-gaap_DebtInstrumentTerm-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" xlink:type="locator"/>
    <link:label xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet</link:label>
    <link:label xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Net tangible assets (liabilities) assumed</link:label>
    <link:label xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount recognized as of the acquisition date for the identifiable tangible assets acquired in excess of (less than) the aggregate liabilities assumed.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="us-gaap_GeneralAndAdministrativeExpense" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_GeneralAndAdministrativeExpense-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">General and administrative</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GeneralAndAdministrativeExpense" xlink:to="us-gaap_GeneralAndAdministrativeExpense-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Foreign currency translation adjustment, income tax expense (recovery)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" xlink:to="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AllocatedShareBasedCompensationExpense-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stock-based compensation expense</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllocatedShareBasedCompensationExpense" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag" xlink:type="locator"/>
    <link:label xlink:label="dei_AmendmentFlag-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Amendment Flag</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AmendmentFlag" xlink:to="dei_AmendmentFlag-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ComprehensiveIncomeNetOfTax" xlink:label="us-gaap_ComprehensiveIncomeNetOfTax" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ComprehensiveIncomeNetOfTax-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ComprehensiveIncomeNetOfTax</link:label>
    <link:label xlink:label="us-gaap_ComprehensiveIncomeNetOfTax-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">COMPREHENSIVE INCOME</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ComprehensiveIncomeNetOfTax" xlink:to="us-gaap_ComprehensiveIncomeNetOfTax-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UseOfEstimates" xlink:label="us-gaap_UseOfEstimates" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_UseOfEstimates-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Use of Estimates, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UseOfEstimates" xlink:to="us-gaap_UseOfEstimates-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">New Accounting Pronouncements, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:to="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInIncomeTaxes" xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxes" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxes-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Income taxes payable</link:label>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxes-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncreaseDecreaseInIncomeTaxes</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInIncomeTaxes" xlink:to="us-gaap_IncreaseDecreaseInIncomeTaxes-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CommonStockSharesOutstanding-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common shares, shares outstanding (in shares)</link:label>
    <link:label xlink:label="us-gaap_CommonStockSharesOutstanding-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Balance, beginning of year (in shares)</link:label>
    <link:label xlink:label="us-gaap_CommonStockSharesOutstanding-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Balance, end of year (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesOutstanding" xlink:to="us-gaap_CommonStockSharesOutstanding-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_TaxYear2024Member" xlink:label="dsgx_TaxYear2024Member" xlink:type="locator"/>
    <link:label xlink:label="dsgx_TaxYear2024Member-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Tax Year 2024 [Member]</link:label>
    <link:label xlink:label="dsgx_TaxYear2024Member-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents tax year 2024.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_TaxYear2024Member" xlink:to="dsgx_TaxYear2024Member-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_TaxYear2023Member" xlink:label="dsgx_TaxYear2023Member" xlink:type="locator"/>
    <link:label xlink:label="dsgx_TaxYear2023Member-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Tax Year 2023 [Member]</link:label>
    <link:label xlink:label="dsgx_TaxYear2023Member-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents tax year 2023.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_TaxYear2023Member" xlink:to="dsgx_TaxYear2023Member-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_TaxYear2022Member" xlink:label="dsgx_TaxYear2022Member" xlink:type="locator"/>
    <link:label xlink:label="dsgx_TaxYear2022Member-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Tax Year 2022 [Member]</link:label>
    <link:label xlink:label="dsgx_TaxYear2022Member-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents tax year 2022.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_TaxYear2022Member" xlink:to="dsgx_TaxYear2022Member-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_CurrentFiscalYearEndDate" xlink:label="dei_CurrentFiscalYearEndDate" xlink:type="locator"/>
    <link:label xlink:label="dei_CurrentFiscalYearEndDate-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current Fiscal Year End Date</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CurrentFiscalYearEndDate" xlink:to="dei_CurrentFiscalYearEndDate-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DebtInstrumentBasisSpreadOnVariableRate1</link:label>
    <link:label xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Debt Instrument, Basis Spread on Variable Rate</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:to="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LeaseCost" xlink:label="us-gaap_LeaseCost" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LeaseCost-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LeaseCost</link:label>
    <link:label xlink:label="us-gaap_LeaseCost-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total operating lease cost</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeaseCost" xlink:to="us-gaap_LeaseCost-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_IncreaseDecreaseInOperatingLeaseLiabilities" xlink:label="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities" xlink:type="locator"/>
    <link:label xlink:label="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Operating leases</link:label>
    <link:label xlink:label="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">dsgx_IncreaseDecreaseInOperatingLeaseLiabilities</link:label>
    <link:label xlink:label="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The amount of increase (decrease) in operating lease liabilities.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities" xlink:to="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_TaxYear2025Member" xlink:label="dsgx_TaxYear2025Member" xlink:type="locator"/>
    <link:label xlink:label="dsgx_TaxYear2025Member-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Tax Year 2025 [Member]</link:label>
    <link:label xlink:label="dsgx_TaxYear2025Member-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents tax year 2025.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_TaxYear2025Member" xlink:to="dsgx_TaxYear2025Member-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets</link:label>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets-label" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Prepaid expenses and other</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Weighted average discount rate (%)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:to="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="dei_DocumentFiscalPeriodFocus" xlink:type="locator"/>
    <link:label xlink:label="dei_DocumentFiscalPeriodFocus-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Fiscal Period Focus</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentFiscalPeriodFocus" xlink:to="dei_DocumentFiscalPeriodFocus-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseCost" xlink:label="us-gaap_OperatingLeaseCost" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeaseCost-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating lease cost</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseCost" xlink:to="us-gaap_OperatingLeaseCost-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentFiscalYearFocus" xlink:label="dei_DocumentFiscalYearFocus" xlink:type="locator"/>
    <link:label xlink:label="dei_DocumentFiscalYearFocus-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Fiscal Year Focus</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentFiscalYearFocus" xlink:to="dei_DocumentFiscalYearFocus-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConsolidationPolicyTextBlock" xlink:label="us-gaap_ConsolidationPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ConsolidationPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Consolidation, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConsolidationPolicyTextBlock" xlink:to="us-gaap_ConsolidationPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShortTermLeaseCost" xlink:label="us-gaap_ShortTermLeaseCost" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShortTermLeaseCost-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Short-term lease cost</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShortTermLeaseCost" xlink:to="us-gaap_ShortTermLeaseCost-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LeaseCostTableTextBlock" xlink:label="us-gaap_LeaseCostTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LeaseCostTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lease, Cost [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeaseCostTableTextBlock" xlink:to="us-gaap_LeaseCostTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate" xlink:type="locator"/>
    <link:label xlink:label="dei_DocumentPeriodEndDate-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Period End Date</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentPeriodEndDate" xlink:to="dei_DocumentPeriodEndDate-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">New ROU assets obtained in exchange for lease obligations</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:to="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Weighted average remaining lease term (years) (Year)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:to="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityEmergingGrowthCompany-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Emerging Growth Company</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityEmergingGrowthCompany" xlink:to="dei_EntityEmergingGrowthCompany-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentType" xlink:label="dei_DocumentType" xlink:type="locator"/>
    <link:label xlink:label="dei_DocumentType-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Type</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentType" xlink:to="dei_DocumentType-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntitySmallBusiness" xlink:label="dei_EntitySmallBusiness" xlink:type="locator"/>
    <link:label xlink:label="dei_EntitySmallBusiness-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Small Business</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntitySmallBusiness" xlink:to="dei_EntitySmallBusiness-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityShellCompany" xlink:label="dei_EntityShellCompany" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityShellCompany-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Shell Company</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityShellCompany" xlink:to="dei_EntityShellCompany-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentInformationLineItems" xlink:label="dei_DocumentInformationLineItems" xlink:type="locator"/>
    <link:label xlink:label="dei_DocumentInformationLineItems-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Information [Line Items]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentInformationLineItems-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals" xlink:label="dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals" xlink:type="locator"/>
    <link:label xlink:label="dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals</link:label>
    <link:label xlink:label="dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Costs to Obtain a Contract with a Customer, Period of Benefit Including Renewals (Year)</link:label>
    <link:label xlink:label="dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the period of benefit, including renewals, associated with the asset for the incremental costs of obtaining a contract with a customer.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals" xlink:to="dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentInformationTable" xlink:label="dei_DocumentInformationTable" xlink:type="locator"/>
    <link:label xlink:label="dei_DocumentInformationTable-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Information [Table]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentInformationTable" xlink:to="dei_DocumentInformationTable-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ServiceMember" xlink:label="us-gaap_ServiceMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ServiceMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Service [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ServiceMember" xlink:to="us-gaap_ServiceMember-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityFilerCategory" xlink:label="dei_EntityFilerCategory" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityFilerCategory-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Filer Category</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityFilerCategory" xlink:to="dei_EntityFilerCategory-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_PinPointMember" xlink:label="dsgx_PinPointMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_PinPointMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">PinPoint [Member]</link:label>
    <link:label xlink:label="dsgx_PinPointMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents information pertaining to PinPoint GPS Solutions Inc.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_PinPointMember" xlink:to="dsgx_PinPointMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DebtInstrumentAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Instrument [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCurrentReportingStatus" xlink:label="dei_EntityCurrentReportingStatus" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityCurrentReportingStatus-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Current Reporting Status</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCurrentReportingStatus" xlink:to="dei_EntityCurrentReportingStatus-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VelocityMailMember" xlink:label="dsgx_VelocityMailMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_VelocityMailMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Velocity Mail [Member]</link:label>
    <link:label xlink:label="dsgx_VelocityMailMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents information pertaining to Velocity Mail, LLC.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_VelocityMailMember" xlink:to="dsgx_VelocityMailMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DebtInstrumentNameDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Instrument, Name [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="us-gaap_DebtInstrumentNameDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringCharges" xlink:label="us-gaap_RestructuringCharges" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RestructuringCharges-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restructuring plans</link:label>
    <link:label xlink:label="us-gaap_RestructuringCharges-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Restructuring Charges, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringCharges" xlink:to="us-gaap_RestructuringCharges-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityVoluntaryFilers" xlink:label="dei_EntityVoluntaryFilers" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityVoluntaryFilers-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Voluntary Filers</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityVoluntaryFilers" xlink:to="dei_EntityVoluntaryFilers-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Acquisition-related costs</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Combination, Acquisition Related Costs</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityWellKnownSeasonedIssuer" xlink:label="dei_EntityWellKnownSeasonedIssuer" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityWellKnownSeasonedIssuer-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Well-known Seasoned Issuer</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityWellKnownSeasonedIssuer" xlink:to="dei_EntityWellKnownSeasonedIssuer-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" xlink:label="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" xlink:type="locator"/>
    <link:label xlink:label="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets</link:label>
    <link:label xlink:label="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Combination, Contingent Consideration Arrangements, Period for Revenue Performance Targets (Year)</link:label>
    <link:label xlink:label="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">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.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" xlink:to="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_VariableRateDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Variable Rate [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_VariableRateDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInOtherReceivables" xlink:label="us-gaap_IncreaseDecreaseInOtherReceivables" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInOtherReceivables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncreaseDecreaseInOtherReceivables</link:label>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInOtherReceivables-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Other accounts receivable</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOtherReceivables" xlink:to="us-gaap_IncreaseDecreaseInOtherReceivables-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillImpairmentLoss" xlink:label="us-gaap_GoodwillImpairmentLoss" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_GoodwillImpairmentLoss-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_GoodwillImpairmentLoss</link:label>
    <link:label xlink:label="us-gaap_GoodwillImpairmentLoss-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill, Impairment Loss</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillImpairmentLoss" xlink:to="us-gaap_GoodwillImpairmentLoss-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_VariableRateAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Variable Rate [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" xlink:type="locator"/>
    <link:label xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Lease obligations</link:label>
    <link:label xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation</link:label>
    <link:label xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount of operating lease obligation assumed in business combination.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" xlink:to="dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_The2019AcquisitionsMember" xlink:label="dsgx_The2019AcquisitionsMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_The2019AcquisitionsMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">The 2019 Acquisitions [Member]</link:label>
    <link:label xlink:label="dsgx_The2019AcquisitionsMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents information pertaining to the 2019 acquisitions (Aljex, Velocity Mail, and PinPoint).</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_The2019AcquisitionsMember" xlink:to="dsgx_The2019AcquisitionsMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CapitalizedContractCostAmortization" xlink:label="us-gaap_CapitalizedContractCostAmortization" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CapitalizedContractCostAmortization-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_CapitalizedContractCostAmortization</link:label>
    <link:label xlink:label="us-gaap_CapitalizedContractCostAmortization-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Capitalized Contract Cost, Amortization</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CapitalizedContractCostAmortization" xlink:to="us-gaap_CapitalizedContractCostAmortization-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncreaseDecreaseInAccountsReceivable</link:label>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Trade accounts receivable</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stock-based compensation expense (Note 17)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:label="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Comprehensive Income [Abstract]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityCentralIndexKey-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Central Index Key</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCentralIndexKey" xlink:to="dei_EntityCentralIndexKey-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityRegistrantName-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Registrant Name</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityRegistrantName" xlink:to="dei_EntityRegistrantName-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityDomain" xlink:to="dei_EntityDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:label xlink:label="dei_LegalEntityAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Legal Entity [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_LegalEntityAxis" xlink:to="dei_LegalEntityAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AmortizationOfIntangibleAssets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Amortization of intangible assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AmortizationOfIntangibleAssets" xlink:to="us-gaap_AmortizationOfIntangibleAssets-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsReceivableNetAbstract" xlink:label="us-gaap_AccountsReceivableNetAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccountsReceivableNetAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts receivable (net)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_AccountsReceivableNetAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredShareUnitLiabilityNumberOfCommonShares" xlink:label="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares" xlink:type="locator"/>
    <link:label xlink:label="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">dsgx_DeferredShareUnitLiabilityNumberOfCommonShares</link:label>
    <link:label xlink:label="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred Share Unit Liability, Number of Common Shares (in shares)</link:label>
    <link:label xlink:label="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the number of common shares for which there is a deferred share unit liability.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares" xlink:to="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" xlink:label="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" xlink:type="locator"/>
    <link:label xlink:label="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net working capital adjustments (receivable) / payable</link:label>
    <link:label xlink:label="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Business acquisition cost of acquired entity working capital adjustments.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" xlink:to="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="dei_EntityCommonStockSharesOutstanding" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityCommonStockSharesOutstanding-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Common Stock, Shares Outstanding (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCommonStockSharesOutstanding" xlink:to="dei_EntityCommonStockSharesOutstanding-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_OtherReceivablesTextBlock" xlink:label="dsgx_OtherReceivablesTextBlock" xlink:type="locator"/>
    <link:label xlink:label="dsgx_OtherReceivablesTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Receivables [Text Block]</link:label>
    <link:label xlink:label="dsgx_OtherReceivablesTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The entire disclosure for other receivables.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_OtherReceivablesTextBlock" xlink:to="dsgx_OtherReceivablesTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_OtherReceivablesTableTextBlock" xlink:label="dsgx_OtherReceivablesTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="dsgx_OtherReceivablesTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Receivables [Table Text Block]</link:label>
    <link:label xlink:label="dsgx_OtherReceivablesTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Schedule of other receivables.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_OtherReceivablesTableTextBlock" xlink:to="dsgx_OtherReceivablesTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_AmountsRecoverableFromFundsHeldInEscrow" xlink:label="dsgx_AmountsRecoverableFromFundsHeldInEscrow" xlink:type="locator"/>
    <link:label xlink:label="dsgx_AmountsRecoverableFromFundsHeldInEscrow-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">dsgx_AmountsRecoverableFromFundsHeldInEscrow</link:label>
    <link:label xlink:label="dsgx_AmountsRecoverableFromFundsHeldInEscrow-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Amounts Recoverable from Funds Held in Escrow</link:label>
    <link:label xlink:label="dsgx_AmountsRecoverableFromFundsHeldInEscrow-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount recoverable from funds held In escrow related to acquisitions.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_AmountsRecoverableFromFundsHeldInEscrow" xlink:to="dsgx_AmountsRecoverableFromFundsHeldInEscrow-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInInventories-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncreaseDecreaseInInventories</link:label>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInInventories-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Inventory</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInInventories" xlink:to="us-gaap_IncreaseDecreaseInInventories-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions" xlink:label="dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions" xlink:type="locator"/>
    <link:label xlink:label="dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net working capital adjustments receivable from acquisitions</link:label>
    <link:label xlink:label="dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Net working capital adjustments receivable from acquisitions.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions" xlink:to="dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue" xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue" xlink:type="locator"/>
    <link:label xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferral of revenue</link:label>
    <link:label xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">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.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue" xlink:to="dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606" xlink:label="dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606" xlink:type="locator"/>
    <link:label xlink:label="dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606</link:label>
    <link:label xlink:label="dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Balance</link:label>
    <link:label xlink:label="dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the amount of contract asset before the adoption of ASC 606.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606" xlink:to="dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange" xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange" xlink:type="locator"/>
    <link:label xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effect of movements in foreign exchange</link:label>
    <link:label xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">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.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange" xlink:to="dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ProfessionalServicesAndOtherMember" xlink:label="dsgx_ProfessionalServicesAndOtherMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_ProfessionalServicesAndOtherMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Professional Services and Other [Member]</link:label>
    <link:label xlink:label="dsgx_ProfessionalServicesAndOtherMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents information pertaining to items categorized as Professional Services and Other.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ProfessionalServicesAndOtherMember" xlink:to="dsgx_ProfessionalServicesAndOtherMember-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange" xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange" xlink:type="locator"/>
    <link:label xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange</link:label>
    <link:label xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Effect of movements in foreign exchange</link:label>
    <link:label xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount of increase (decrease) to the contract asset during the period attributable to the effect of movements in foreign exchange.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange" xlink:to="dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet" xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet" xlink:type="locator"/>
    <link:label xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables</link:label>
    <link:label xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">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.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet" xlink:to="dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueAcquisitions" xlink:label="us-gaap_StockIssuedDuringPeriodValueAcquisitions" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StockIssuedDuringPeriodValueAcquisitions-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Acquisitions (Note 3)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodValueAcquisitions" xlink:to="us-gaap_StockIssuedDuringPeriodValueAcquisitions-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised</link:label>
    <link:label xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Exercised, shares (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_TableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_TableTextBlock</link:label>
    <link:label xlink:label="us-gaap_TableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Notes Tables</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_TableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_VisualComplianceMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Visual Compliance [Member]</link:label>
    <link:label xlink:label="dsgx_VisualComplianceMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">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.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_VisualComplianceMember" xlink:to="dsgx_VisualComplianceMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity</link:label>
    <link:label xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Line of Credit Facility, Maximum Borrowing Capacity</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stock options and share units exercised</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:to="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:label="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage</link:label>
    <link:label xlink:label="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Line of Credit Facility, Unused Capacity, Commitment Fee Percentage</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:to="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="us-gaap_ProvisionForDoubtfulAccounts" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ProvisionForDoubtfulAccounts-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current period provision for expected losses</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProvisionForDoubtfulAccounts" xlink:to="us-gaap_ProvisionForDoubtfulAccounts-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Granted, shares (in shares)</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Gross (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Forfeited, shares (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SellingAndMarketingExpense" xlink:label="us-gaap_SellingAndMarketingExpense" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SellingAndMarketingExpense-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Sales and marketing</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SellingAndMarketingExpense" xlink:to="us-gaap_SellingAndMarketingExpense-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:label="us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StockIssuedDuringPeriodSharesNewIssues-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Issuance of common shares (in shares)</link:label>
    <link:label xlink:label="us-gaap_StockIssuedDuringPeriodSharesNewIssues-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock Issued During Period, Shares, New Issues (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:to="us-gaap_StockIssuedDuringPeriodSharesNewIssues-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LiabilitiesAndStockholdersEquity-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LiabilitiesAndStockholdersEquity</link:label>
    <link:label xlink:label="us-gaap_LiabilitiesAndStockholdersEquity-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Liabilities and Equity, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueNewIssues" xlink:label="us-gaap_StockIssuedDuringPeriodValueNewIssues" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StockIssuedDuringPeriodValueNewIssues-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Issuance of common shares, net of issuance costs (Note 15)</link:label>
    <link:label xlink:label="us-gaap_StockIssuedDuringPeriodValueNewIssues-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock Issued During Period, Value, New Issues</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodValueNewIssues" xlink:to="us-gaap_StockIssuedDuringPeriodValueNewIssues-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd#country_US" xlink:label="country_US" xlink:type="locator"/>
    <link:label xlink:label="country_US-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">UNITED STATES</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="country_US" xlink:to="country_US-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accumulated deficit</link:label>
    <link:label xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Retained Earnings (Accumulated Deficit), Ending Balance</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="us-gaap_ResearchAndDevelopmentExpense" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ResearchAndDevelopmentExpense-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Research and development</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ResearchAndDevelopmentExpense" xlink:to="us-gaap_ResearchAndDevelopmentExpense-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accumulated other comprehensive loss</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtDisclosureTextBlock" xlink:label="us-gaap_DebtDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DebtDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtDisclosureTextBlock" xlink:to="us-gaap_DebtDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InterestExpense-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_InterestExpense</link:label>
    <link:label xlink:label="us-gaap_InterestExpense-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">INTEREST EXPENSE</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestExpense" xlink:to="us-gaap_InterestExpense-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DisclosureTextBlockAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DisclosureTextBlockAbstract</link:label>
    <link:label xlink:label="us-gaap_DisclosureTextBlockAbstract-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Notes to Financial Statements</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_DisclosureTextBlockAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNoncashIncomeExpense" xlink:label="us-gaap_OtherNoncashIncomeExpense" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherNoncashIncomeExpense-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OtherNoncashIncomeExpense</link:label>
    <link:label xlink:label="us-gaap_OtherNoncashIncomeExpense-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Other non-cash operating activities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherNoncashIncomeExpense" xlink:to="us-gaap_OtherNoncashIncomeExpense-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryDisclosureTextBlock" xlink:label="us-gaap_InventoryDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InventoryDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryDisclosureTextBlock" xlink:to="us-gaap_InventoryDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SubsequentEventMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsequent Event [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventMember" xlink:to="us-gaap_SubsequentEventMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Long-term</link:label>
    <link:label xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OperatingLeaseLiabilityNoncurrent</link:label>
    <link:label xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">LEASE OBLIGATIONS (Note 13)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeaseLiability-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Total lease obligations</link:label>
    <link:label xlink:label="us-gaap_OperatingLeaseLiability-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating Lease, Liability, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiability" xlink:to="us-gaap_OperatingLeaseLiability-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SubsequentEventTypeAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsequent Event Type [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeaseLiabilityCurrent-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Current</link:label>
    <link:label xlink:label="us-gaap_OperatingLeaseLiabilityCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lease obligations (Note 13)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityCurrent" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SubsequentEventTypeDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsequent Event Type [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventTypeDomain" xlink:to="us-gaap_SubsequentEventTypeDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventsTextBlock" xlink:label="us-gaap_SubsequentEventsTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SubsequentEventsTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsequent Events [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventsTextBlock" xlink:to="us-gaap_SubsequentEventsTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeaseRightOfUseAsset-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">RIGHT-OF-USE ASSETS (Note 13)</link:label>
    <link:label xlink:label="us-gaap_OperatingLeaseRightOfUseAsset-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating Lease, Right-of-Use Asset</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseRightOfUseAsset" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue</link:label>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total lease payments</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount</link:label>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Less: imputed interest</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred</link:label>
    <link:label xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred tax expense</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Asset, Expected Amortization, after Year Five</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">2024</link:label>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">2025</link:label>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">2026</link:label>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">2027 and thereafter</link:label>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Asset, Expected Amortization, Year Two</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:label="us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FairValueOfFinancialInstrumentsPolicy-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value of Financial Instruments, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:to="us-gaap_FairValueOfFinancialInstrumentsPolicy-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Asset, Expected Amortization, Year Three</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Asset, Expected Amortization, Year Four</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">2022</link:label>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Asset, Expected Amortization, Year Five</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">2023</link:label>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsForRestructuring" xlink:label="us-gaap_PaymentsForRestructuring" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PaymentsForRestructuring-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_PaymentsForRestructuring</link:label>
    <link:label xlink:label="us-gaap_PaymentsForRestructuring-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Cash draw downs</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsForRestructuring" xlink:to="us-gaap_PaymentsForRestructuring-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Asset, Expected Amortization, Year One</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" xlink:label="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Acquired Finite-Lived Intangible Assets by Major Class [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" xlink:to="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:label="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Foreign Currency Transactions and Translations Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:to="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherAssetsNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">OTHER LONG-TERM ASSETS (Note 19)</link:label>
    <link:label xlink:label="us-gaap_OtherAssetsNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other Assets, Noncurrent, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssetsNoncurrent" xlink:to="us-gaap_OtherAssetsNoncurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, Maturity [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Stock-based compensation expense (Note 17)</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensation</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensation" xlink:to="us-gaap_ShareBasedCompensation-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeLeasesPolicyTextBlock" xlink:label="us-gaap_LesseeLeasesPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeLeasesPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Leases [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeLeasesPolicyTextBlock" xlink:to="us-gaap_LesseeLeasesPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationsPolicy" xlink:label="us-gaap_BusinessCombinationsPolicy" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationsPolicy-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combinations Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationsPolicy" xlink:to="us-gaap_BusinessCombinationsPolicy-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Acquired intangible assets estimated useful lives (Year)</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Asset, Useful Life (Year)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerSharePolicyTextBlock" xlink:label="us-gaap_EarningsPerSharePolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EarningsPerSharePolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Earnings Per Share, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerSharePolicyTextBlock" xlink:to="us-gaap_EarningsPerSharePolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_SeniorSecuredCreditFacilityMember" xlink:label="dsgx_SeniorSecuredCreditFacilityMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_SeniorSecuredCreditFacilityMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Senior Secured Credit Facility [Member]</link:label>
    <link:label xlink:label="dsgx_SeniorSecuredCreditFacilityMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents information pertaining to the senior secured credit facility.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_SeniorSecuredCreditFacilityMember" xlink:to="dsgx_SeniorSecuredCreditFacilityMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxPolicyTextBlock" xlink:label="us-gaap_IncomeTaxPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxPolicyTextBlock" xlink:to="us-gaap_IncomeTaxPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CanadaOrUsPrimeRateBaOrLiborMember" xlink:label="dsgx_CanadaOrUsPrimeRateBaOrLiborMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_CanadaOrUsPrimeRateBaOrLiborMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Canada or US Prime Rate, BA, or LIBOR [Member]</link:label>
    <link:label xlink:label="dsgx_CanadaOrUsPrimeRateBaOrLiborMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents information pertaining to the Canada or US prime rate, Bankers' Acceptance (BA) or London Interbank Offered Rate (LIBOR).</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CanadaOrUsPrimeRateBaOrLiborMember" xlink:to="dsgx_CanadaOrUsPrimeRateBaOrLiborMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Finite-Lived Intangible Assets [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xlink:label="us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Research, Development, and Computer Software, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xlink:to="us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:label="us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseRenewalTerm-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LesseeOperatingLeaseRenewalTerm</link:label>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseRenewalTerm-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Renewal Term (Year)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:to="us-gaap_LesseeOperatingLeaseRenewalTerm-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Depreciation" xlink:label="us-gaap_Depreciation" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_Depreciation-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Depreciation</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Depreciation" xlink:to="us-gaap_Depreciation-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Intangible Assets Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:to="us-gaap_IntangibleAssetsDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" xlink:label="us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent</link:label>
    <link:label xlink:label="us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred Compensation Share-based Arrangements, Liability, Current and Noncurrent</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" xlink:to="us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_RevolvingOperatingCreditFacilityMember" xlink:label="dsgx_RevolvingOperatingCreditFacilityMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_RevolvingOperatingCreditFacilityMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revolving Operating Credit Facility [Member]</link:label>
    <link:label xlink:label="dsgx_RevolvingOperatingCreditFacilityMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents information pertaining to a revolving operating credit facility for general corporate purposes including the financing of ongoing working capital needs and acquisitions.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_RevolvingOperatingCreditFacilityMember" xlink:to="dsgx_RevolvingOperatingCreditFacilityMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharesIssuedPricePerShare" xlink:label="us-gaap_SharesIssuedPricePerShare" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharesIssuedPricePerShare-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_SharesIssuedPricePerShare</link:label>
    <link:label xlink:label="us-gaap_SharesIssuedPricePerShare-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Shares Issued, Price Per Share (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharesIssuedPricePerShare" xlink:to="us-gaap_SharesIssuedPricePerShare-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember" xlink:label="dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Line of Credit Borrowings to Support Foreign Exchange and Interest Rate Hedging [Member]</link:label>
    <link:label xlink:label="dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents information pertaining to line of credit borrowings to support foreign exchange and interest rate hedging.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember" xlink:to="dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AssetsCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_AssetsCurrent</link:label>
    <link:label xlink:label="us-gaap_AssetsCurrent-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Assets, Current, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_AssetsCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:to="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xlink:label="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xlink:type="locator"/>
    <link:label xlink:label="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized</link:label>
    <link:label xlink:label="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash Settled Restricted Share Units Nonvested Total Compensation Cost Not Yet Recognized</link:label>
    <link:label xlink:label="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The cash settled restricted share units nonvested, total compensation cost not yet recognized.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xlink:to="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShareCapitalTextBlock" xlink:label="dsgx_ShareCapitalTextBlock" xlink:type="locator"/>
    <link:label xlink:label="dsgx_ShareCapitalTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share Capital [Text Block]</link:label>
    <link:label xlink:label="dsgx_ShareCapitalTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Disclosure and information regarding share capital.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ShareCapitalTextBlock" xlink:to="dsgx_ShareCapitalTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ProceedsFromIssuanceOfCommonStockNet" xlink:label="dsgx_ProceedsFromIssuanceOfCommonStockNet" xlink:type="locator"/>
    <link:label xlink:label="dsgx_ProceedsFromIssuanceOfCommonStockNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">dsgx_ProceedsFromIssuanceOfCommonStockNet</link:label>
    <link:label xlink:label="dsgx_ProceedsFromIssuanceOfCommonStockNet-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Proceeds from Issuance of Common Stock, Net</link:label>
    <link:label xlink:label="dsgx_ProceedsFromIssuanceOfCommonStockNet-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The cash inflow from the additional capital contribution to the entity, net of expenses associated with the offering.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ProceedsFromIssuanceOfCommonStockNet" xlink:to="dsgx_ProceedsFromIssuanceOfCommonStockNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contingent consideration adjustments</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_OverallotmentOption" xlink:label="dsgx_OverallotmentOption" xlink:type="locator"/>
    <link:label xlink:label="dsgx_OverallotmentOption-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">dsgx_OverallotmentOption</link:label>
    <link:label xlink:label="dsgx_OverallotmentOption-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Over-Allotment Option</link:label>
    <link:label xlink:label="dsgx_OverallotmentOption-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Percentage of rights given to the underwriter to sell additional shares over the initial allotment.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_OverallotmentOption" xlink:to="dsgx_OverallotmentOption-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised" xlink:label="dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised" xlink:type="locator"/>
    <link:label xlink:label="dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stock options and share units exercised (in shares)</link:label>
    <link:label xlink:label="dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the number of shares issued from the exercise of stock options and share units.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised" xlink:to="dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CommonStockValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common shares &#8211; unlimited shares authorized; Shares issued and outstanding totaled 84,494,658 at January 31, 2021 (January 31, 2020 &#8211; 84,156,316)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockValue" xlink:to="us-gaap_CommonStockValue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Adjustments to reconcile net income to cash provided by operating activities:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_StockOptionsTreasuryStockMethodMember" xlink:label="dsgx_StockOptionsTreasuryStockMethodMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_StockOptionsTreasuryStockMethodMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stock Options, Treasury Stock Method [Member]</link:label>
    <link:label xlink:label="dsgx_StockOptionsTreasuryStockMethodMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the treasury stock.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_StockOptionsTreasuryStockMethodMember" xlink:to="dsgx_StockOptionsTreasuryStockMethodMember-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShareholderapprovedStockOptionPlanMember" xlink:label="dsgx_ShareholderapprovedStockOptionPlanMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_ShareholderapprovedStockOptionPlanMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Shareholder-Approved Stock Option Plan [Member]</link:label>
    <link:label xlink:label="dsgx_ShareholderapprovedStockOptionPlanMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents Company's shareholder approved stock option plan.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ShareholderapprovedStockOptionPlanMember" xlink:to="dsgx_ShareholderapprovedStockOptionPlanMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CommonStockSharesIssued-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common shares, shares issued (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesIssued" xlink:to="us-gaap_CommonStockSharesIssued-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_AsiaPacificMember" xlink:label="srt_AsiaPacificMember" xlink:type="locator"/>
    <link:label xlink:label="srt_AsiaPacificMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asia Pacific [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_AsiaPacificMember" xlink:to="srt_AsiaPacificMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue from Contract with Customer [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:to="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredTaxAssetsValuationAllowance</link:label>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Valuation allowance</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsValuationAllowance" xlink:to="us-gaap_DeferredTaxAssetsValuationAllowance-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:label xlink:label="srt_RangeMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statistical Measurement [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RangeMember" xlink:to="srt_RangeMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeasePayments" xlink:label="us-gaap_OperatingLeasePayments" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeasePayments-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating cash outflows from operating leases included in measurement of lease liabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasePayments" xlink:to="us-gaap_OperatingLeasePayments-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:label xlink:label="srt_MaximumMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Maximum [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MaximumMember" xlink:to="srt_MaximumMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:label xlink:label="srt_MinimumMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Minimum [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MinimumMember" xlink:to="srt_MinimumMember-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredShareUnitsOutstandingNumber" xlink:label="dsgx_DeferredShareUnitsOutstandingNumber" xlink:type="locator"/>
    <link:label xlink:label="dsgx_DeferredShareUnitsOutstandingNumber-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">dsgx_DeferredShareUnitsOutstandingNumber</link:label>
    <link:label xlink:label="dsgx_DeferredShareUnitsOutstandingNumber-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred Share Units Outstanding Number (in shares)</link:label>
    <link:label xlink:label="dsgx_DeferredShareUnitsOutstandingNumber-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Number of outstanding deferred share units as of the reported date.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DeferredShareUnitsOutstandingNumber" xlink:to="dsgx_DeferredShareUnitsOutstandingNumber-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherAssetsCurrent" xlink:label="us-gaap_OtherAssetsCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherAssetsCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other receivables</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssetsCurrent" xlink:to="us-gaap_OtherAssetsCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis" xlink:type="locator"/>
    <link:label xlink:label="srt_ProductOrServiceAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Product and Service [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductOrServiceAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain" xlink:type="locator"/>
    <link:label xlink:label="srt_ProductsAndServicesDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Product and Service [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ProductsAndServicesDomain" xlink:to="srt_ProductsAndServicesDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:label xlink:label="srt_RangeAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statistical Measurement [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RangeAxis" xlink:to="srt_RangeAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredShareUnitsGrantsInPeriod" xlink:label="dsgx_DeferredShareUnitsGrantsInPeriod" xlink:type="locator"/>
    <link:label xlink:label="dsgx_DeferredShareUnitsGrantsInPeriod-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">dsgx_DeferredShareUnitsGrantsInPeriod</link:label>
    <link:label xlink:label="dsgx_DeferredShareUnitsGrantsInPeriod-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred Share Units Grants In Period (in shares)</link:label>
    <link:label xlink:label="dsgx_DeferredShareUnitsGrantsInPeriod-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The number of deferred share units granted in period.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DeferredShareUnitsGrantsInPeriod" xlink:to="dsgx_DeferredShareUnitsGrantsInPeriod-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredShareUnitsCompensationExpense" xlink:label="dsgx_DeferredShareUnitsCompensationExpense" xlink:type="locator"/>
    <link:label xlink:label="dsgx_DeferredShareUnitsCompensationExpense-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">dsgx_DeferredShareUnitsCompensationExpense</link:label>
    <link:label xlink:label="dsgx_DeferredShareUnitsCompensationExpense-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred Share Units Compensation Expense</link:label>
    <link:label xlink:label="dsgx_DeferredShareUnitsCompensationExpense-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The deferred share units compensation expense.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DeferredShareUnitsCompensationExpense" xlink:to="dsgx_DeferredShareUnitsCompensationExpense-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:label="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Cash Flow, Supplemental Disclosures [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:to="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CashSettledRestrictedShareUnitsCompensationExpense" xlink:label="dsgx_CashSettledRestrictedShareUnitsCompensationExpense" xlink:type="locator"/>
    <link:label xlink:label="dsgx_CashSettledRestrictedShareUnitsCompensationExpense-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">dsgx_CashSettledRestrictedShareUnitsCompensationExpense</link:label>
    <link:label xlink:label="dsgx_CashSettledRestrictedShareUnitsCompensationExpense-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash Settled Restricted Share Units Compensation Expense</link:label>
    <link:label xlink:label="dsgx_CashSettledRestrictedShareUnitsCompensationExpense-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The cash settled restricted share units compensation expense.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CashSettledRestrictedShareUnitsCompensationExpense" xlink:to="dsgx_CashSettledRestrictedShareUnitsCompensationExpense-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CashsettledRestrictedShareUnitMember" xlink:label="dsgx_CashsettledRestrictedShareUnitMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_CashsettledRestrictedShareUnitMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash-Settled Restricted Share Unit [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CashsettledRestrictedShareUnitMember" xlink:to="dsgx_CashsettledRestrictedShareUnitMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InterestPaidNet" xlink:label="us-gaap_InterestPaidNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InterestPaidNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash paid during the year for interest</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestPaidNet" xlink:to="us-gaap_InterestPaidNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:label="us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CashFlowSupplementalDisclosuresTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash Flow, Supplemental Disclosures [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:to="us-gaap_CashFlowSupplementalDisclosuresTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NoncurrentAssets" xlink:label="us-gaap_NoncurrentAssets" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NoncurrentAssets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Geograhical long-lived assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NoncurrentAssets" xlink:to="us-gaap_NoncurrentAssets-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock" xlink:label="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Impairment or Disposal of Long-Lived Assets, Including Intangible Assets, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock" xlink:to="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_StatementGeographicalAxis" xlink:label="srt_StatementGeographicalAxis" xlink:type="locator"/>
    <link:label xlink:label="srt_StatementGeographicalAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Geographical [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_StatementGeographicalAxis" xlink:to="srt_StatementGeographicalAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:label="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill and Intangible Assets, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:to="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_Range1Member" xlink:label="dsgx_Range1Member" xlink:type="locator"/>
    <link:label xlink:label="dsgx_Range1Member-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Range 1 [Member]</link:label>
    <link:label xlink:label="dsgx_Range1Member-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents range 1.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_Range1Member" xlink:to="dsgx_Range1Member-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsGross" xlink:label="us-gaap_DeferredTaxAssetsGross" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsGross-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredTaxAssetsGross</link:label>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsGross-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total deferred income tax assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsGross" xlink:to="us-gaap_DeferredTaxAssetsGross-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain" xlink:type="locator"/>
    <link:label xlink:label="srt_SegmentGeographicalDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Geographical [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_SegmentGeographicalDomain" xlink:to="srt_SegmentGeographicalDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilities" xlink:label="us-gaap_DeferredIncomeTaxLiabilities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredIncomeTaxLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredIncomeTaxLiabilities</link:label>
    <link:label xlink:label="us-gaap_DeferredIncomeTaxLiabilities-label" xlink:role="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:type="resource" xml:lang="en-US">Total deferred income tax liabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxLiabilities" xlink:to="us-gaap_DeferredIncomeTaxLiabilities-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_Range3Member" xlink:label="dsgx_Range3Member" xlink:type="locator"/>
    <link:label xlink:label="dsgx_Range3Member-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Range 3 [Member]</link:label>
    <link:label xlink:label="dsgx_Range3Member-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents range 3.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_Range3Member" xlink:to="dsgx_Range3Member-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_Range2Member" xlink:label="dsgx_Range2Member" xlink:type="locator"/>
    <link:label xlink:label="dsgx_Range2Member-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Range 2 [Member]</link:label>
    <link:label xlink:label="dsgx_Range2Member-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents range 2.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_Range2Member" xlink:to="dsgx_Range2Member-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InventoryNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory (Note 7)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryNet-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock" xlink:label="dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule Of Cash Settled Restricted Share Unit Plan Activity [Table Text Block]</link:label>
    <link:label xlink:label="dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Schedule of cash settled under restricted share units.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock" xlink:to="dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EMEAMember" xlink:label="us-gaap_EMEAMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EMEAMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">EMEA [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EMEAMember" xlink:to="us-gaap_EMEAMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Revenues</link:label>
    <link:label xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">REVENUES</link:label>
    <link:label xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Geographical Revenue</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryValuationReserves" xlink:label="us-gaap_InventoryValuationReserves" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InventoryValuationReserves-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_InventoryValuationReserves</link:label>
    <link:label xlink:label="us-gaap_InventoryValuationReserves-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Inventory Valuation Reserves, Ending Balance</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryValuationReserves" xlink:to="us-gaap_InventoryValuationReserves-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xlink:label="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ForeignCurrencyTransactionGainLossBeforeTax</link:label>
    <link:label xlink:label="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign Currency Transaction Gain (Loss), before Tax, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xlink:to="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" xlink:type="locator"/>
    <link:label xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Exercisable, number of units (in shares)</link:label>
    <link:label xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">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).</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:label="us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Difference between tax and accounting basis of property and equipment</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:to="us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accrued liabilities not currently deductible</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:label="srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:type="locator"/>
    <link:label xlink:label="srt_CumulativeEffectPeriodOfAdoptionDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cumulative Effect, Period of Adoption [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:to="srt_CumulativeEffectPeriodOfAdoptionDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:type="locator"/>
    <link:label xlink:label="srt_CumulativeEffectPeriodOfAdoptionAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cumulative Effect, Period of Adoption [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:to="srt_CumulativeEffectPeriodOfAdoptionAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_PropertyPlantAndEquipmentUsefulLife</link:label>
    <link:label xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Useful Life (Year)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:to="us-gaap_PropertyPlantAndEquipmentUsefulLife-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred revenue</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:to="us-gaap_IncreaseDecreaseInDeferredRevenue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:type="locator"/>
    <link:label xlink:label="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cumulative Effect, Period of Adoption, Adjustment [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:to="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UnbilledReceivablesCurrent" xlink:label="us-gaap_UnbilledReceivablesCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_UnbilledReceivablesCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_UnbilledReceivablesCurrent</link:label>
    <link:label xlink:label="us-gaap_UnbilledReceivablesCurrent-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unbilled Receivables, Current</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UnbilledReceivablesCurrent" xlink:to="us-gaap_UnbilledReceivablesCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">OPERATING ACTIVITIES</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Segment Reporting Information, by Segment [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetUnderConstructionMember" xlink:label="us-gaap_AssetUnderConstructionMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AssetUnderConstructionMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset under Construction [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetUnderConstructionMember" xlink:to="us-gaap_AssetUnderConstructionMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StatementLineItems-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement [Line Items]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementLineItems-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsReceivableGrossCurrent" xlink:label="us-gaap_AccountsReceivableGrossCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccountsReceivableGrossCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trade accounts receivable</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableGrossCurrent" xlink:to="us-gaap_AccountsReceivableGrossCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent</link:label>
    <link:label xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Less: Provision for credit losses</link:label>
    <link:label xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Balance</link:label>
    <link:label xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Balance</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FurnitureAndFixturesMember" xlink:label="us-gaap_FurnitureAndFixturesMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FurnitureAndFixturesMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Furniture and Fixtures [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FurnitureAndFixturesMember" xlink:to="us-gaap_FurnitureAndFixturesMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccountsReceivableNetCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trade (Note 5)</link:label>
    <link:label xlink:label="us-gaap_AccountsReceivableNetCurrent-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Accounts Receivable, after Allowance for Credit Loss, Current, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableNetCurrent" xlink:to="us-gaap_AccountsReceivableNetCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NumberOfReportableSegments" xlink:label="us-gaap_NumberOfReportableSegments" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NumberOfReportableSegments-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_NumberOfReportableSegments</link:label>
    <link:label xlink:label="us-gaap_NumberOfReportableSegments-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of Reportable Segments</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NumberOfReportableSegments" xlink:to="us-gaap_NumberOfReportableSegments-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost</link:label>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Share-based Compensation Cost</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Additional paid-in capital</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdditionalPaidInCapitalCommonStock" xlink:to="us-gaap_AdditionalPaidInCapitalCommonStock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">AOCI Attributable to Parent [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="us-gaap_StockholdersEquityAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StockholdersEquityAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SHAREHOLDERS&#8217; EQUITY (Note 15)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquityAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LeaseholdImprovementsMember" xlink:label="us-gaap_LeaseholdImprovementsMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LeaseholdImprovementsMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Leasehold Improvements [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeaseholdImprovementsMember" xlink:to="us-gaap_LeaseholdImprovementsMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNonoperatingExpense" xlink:label="us-gaap_OtherNonoperatingExpense" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherNonoperatingExpense-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other charges (Note 20)</link:label>
    <link:label xlink:label="us-gaap_OtherNonoperatingExpense-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Other Nonoperating Expense, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherNonoperatingExpense" xlink:to="us-gaap_OtherNonoperatingExpense-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:label="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Change in Accounting Principle, Type [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:to="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-Lived Tangible Asset [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ChangeInAccountingPrincipleMember" xlink:label="us-gaap_ChangeInAccountingPrincipleMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ChangeInAccountingPrincipleMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Change in Accounting Principle, Type [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ChangeInAccountingPrincipleMember" xlink:to="us-gaap_ChangeInAccountingPrincipleMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-Lived Tangible Asset [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SegmentReportingDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Segment Reporting Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentReportingDisclosureTextBlock" xlink:to="us-gaap_SegmentReportingDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accumulated net operating losses</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:to="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:label="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Research and development and other tax credits and expenses</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:to="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="us-gaap_AssetsCurrentAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AssetsCurrentAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">CURRENT ASSETS</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_AssetsCurrentAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InvestmentIncomeNet" xlink:label="us-gaap_InvestmentIncomeNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InvestmentIncomeNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">INVESTMENT INCOME</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InvestmentIncomeNet" xlink:to="us-gaap_InvestmentIncomeNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueDisclosuresTextBlock" xlink:label="us-gaap_FairValueDisclosuresTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FairValueDisclosuresTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value Disclosures [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueDisclosuresTextBlock" xlink:to="us-gaap_FairValueDisclosuresTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerAssetReclassifiedToReceivable" xlink:label="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ContractWithCustomerAssetReclassifiedToReceivable</link:label>
    <link:label xlink:label="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Transfers to trade receivables from contract assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable" xlink:to="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations</link:label>
    <link:label xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Cash, beginning of year</link:label>
    <link:label xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Cash, end of year</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryPolicyTextBlock" xlink:label="us-gaap_InventoryPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InventoryPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryPolicyTextBlock" xlink:to="us-gaap_InventoryPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effect of foreign exchange rate changes on cash</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:to="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LicenseMember" xlink:label="us-gaap_LicenseMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LicenseMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">License [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LicenseMember" xlink:to="us-gaap_LicenseMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect</link:label>
    <link:label xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Increase (decrease) in cash</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_NetCashProvidedByUsedInFinancingActivities</link:label>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Cash provided by (used in) financing activities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_Liabilities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_Liabilities</link:label>
    <link:label xlink:label="us-gaap_Liabilities-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Liabilities, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_Liabilities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CommitmentsAndContingencies-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">COMMITMENTS, CONTINGENCIES AND GUARANTEES (Note 14)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingencies" xlink:to="us-gaap_CommitmentsAndContingencies-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsidiarySaleOfStockAxis" xlink:label="us-gaap_SubsidiarySaleOfStockAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SubsidiarySaleOfStockAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Sale of Stock [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsidiarySaleOfStockAxis" xlink:to="us-gaap_SubsidiarySaleOfStockAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SaleOfStockNameOfTransactionDomain" xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Sale of Stock [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SaleOfStockNameOfTransactionDomain" xlink:to="us-gaap_SaleOfStockNameOfTransactionDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingIncomeLoss-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">INCOME FROM OPERATIONS</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_OperatingIncomeLoss-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:label xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Performance units issued, weighted-average granted date fair value (in dollars per share)</link:label>
    <link:label xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the weighted average grant date fair value of units issued during the period.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Recognition of previously deferred revenue</link:label>
    <link:label xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Recognition of previously deferred revenue</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_NetCashProvidedByUsedInOperatingActivities</link:label>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Cash provided by operating activities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxLiabilitiesOther" xlink:label="us-gaap_DeferredTaxLiabilitiesOther" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxLiabilitiesOther-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredTaxLiabilitiesOther</link:label>
    <link:label xlink:label="us-gaap_DeferredTaxLiabilitiesOther-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Other temporary differences</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxLiabilitiesOther" xlink:to="us-gaap_DeferredTaxLiabilitiesOther-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increases from business combinations, net</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:to="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_NetCashProvidedByUsedInInvestingActivities</link:label>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Cash used in investing activities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Prepaid expenses and other</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" xlink:type="locator"/>
    <link:label xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Exercisable, Weighted-Average Remaining Contractual, PSU (Year)</link:label>
    <link:label xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">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.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:label xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Exercisable, PSU weighted-average granted date fair value (in dollars per share)</link:label>
    <link:label xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">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.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets</link:label>
    <link:label xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Difference between tax and accounting basis of intangible assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:to="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" xlink:type="locator"/>
    <link:label xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Exercisable, Aggregate Intrinsic Value, PSU</link:label>
    <link:label xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Intrinsic value of equity-based compensation awards exercisable. Excludes stock and unit options.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_GrossProfit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_GrossProfit</link:label>
    <link:label xlink:label="us-gaap_GrossProfit-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">GROSS MARGIN</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_GrossProfit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock" xlink:label="us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Other Operating Cost and Expense, by Component [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock" xlink:to="us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CostOfGoodsAndServicesSold-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">COST OF REVENUES</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostOfGoodsAndServicesSold" xlink:to="us-gaap_CostOfGoodsAndServicesSold-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingStandardsUpdate201409Member" xlink:label="us-gaap_AccountingStandardsUpdate201409Member" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccountingStandardsUpdate201409Member-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounting Standards Update 2014-09 [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountingStandardsUpdate201409Member" xlink:to="us-gaap_AccountingStandardsUpdate201409Member-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CRSUAwardsWeightedAverageContractualLife" xlink:label="dsgx_CRSUAwardsWeightedAverageContractualLife" xlink:type="locator"/>
    <link:label xlink:label="dsgx_CRSUAwardsWeightedAverageContractualLife-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Weighted-Average Remaining Contractual Life, CRSU (Year)</link:label>
    <link:label xlink:label="dsgx_CRSUAwardsWeightedAverageContractualLife-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The weighted average remaining contractual life of CRSU awards.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CRSUAwardsWeightedAverageContractualLife" xlink:to="dsgx_CRSUAwardsWeightedAverageContractualLife-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">DEFERRED INCOME TAXES</link:label>
    <link:label xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred Income Tax Liabilities, Net, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CRSUAwardsOutstandingNumber" xlink:label="dsgx_CRSUAwardsOutstandingNumber" xlink:type="locator"/>
    <link:label xlink:label="dsgx_CRSUAwardsOutstandingNumber-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">dsgx_CRSUAwardsOutstandingNumber</link:label>
    <link:label xlink:label="dsgx_CRSUAwardsOutstandingNumber-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Number of Units Outstanding, CRSU (in shares)</link:label>
    <link:label xlink:label="dsgx_CRSUAwardsOutstandingNumber-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Number of Units Outstanding, CRSU (in shares)</link:label>
    <link:label xlink:label="dsgx_CRSUAwardsOutstandingNumber-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The number of CRSU awards outstanding.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CRSUAwardsOutstandingNumber" xlink:to="dsgx_CRSUAwardsOutstandingNumber-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CRSUAwardNonvestedWeightedAverageContractualLife" xlink:label="dsgx_CRSUAwardNonvestedWeightedAverageContractualLife" xlink:type="locator"/>
    <link:label xlink:label="dsgx_CRSUAwardNonvestedWeightedAverageContractualLife-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-vested, Weighted-Average Remaining Contractual Life, CRSU (Year)</link:label>
    <link:label xlink:label="dsgx_CRSUAwardNonvestedWeightedAverageContractualLife-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The weighted average remaining contractual life of nonvested CRSU awards.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CRSUAwardNonvestedWeightedAverageContractualLife" xlink:to="dsgx_CRSUAwardNonvestedWeightedAverageContractualLife-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CRSUAwardsVestedAndSettledInCash" xlink:label="dsgx_CRSUAwardsVestedAndSettledInCash" xlink:type="locator"/>
    <link:label xlink:label="dsgx_CRSUAwardsVestedAndSettledInCash-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">dsgx_CRSUAwardsVestedAndSettledInCash</link:label>
    <link:label xlink:label="dsgx_CRSUAwardsVestedAndSettledInCash-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Number of Units Vested and settled in cash, CRSU (in shares)</link:label>
    <link:label xlink:label="dsgx_CRSUAwardsVestedAndSettledInCash-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The number of CRSU awards vested and settled in cash.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CRSUAwardsVestedAndSettledInCash" xlink:to="dsgx_CRSUAwardsVestedAndSettledInCash-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CRSUAwardsGrantsInPeriod" xlink:label="dsgx_CRSUAwardsGrantsInPeriod" xlink:type="locator"/>
    <link:label xlink:label="dsgx_CRSUAwardsGrantsInPeriod-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Number of Units Granted, CRSU (in shares)</link:label>
    <link:label xlink:label="dsgx_CRSUAwardsGrantsInPeriod-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The number of CRSU grants in period.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CRSUAwardsGrantsInPeriod" xlink:to="dsgx_CRSUAwardsGrantsInPeriod-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CRSUAwardNonvestedNumber" xlink:label="dsgx_CRSUAwardNonvestedNumber" xlink:type="locator"/>
    <link:label xlink:label="dsgx_CRSUAwardNonvestedNumber-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-vested, CRSU (in shares)</link:label>
    <link:label xlink:label="dsgx_CRSUAwardNonvestedNumber-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The number of nonvested CRSU awards.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_CRSUAwardNonvestedNumber" xlink:to="dsgx_CRSUAwardNonvestedNumber-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ContractWithCustomerLiability-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ContractWithCustomerLiability</link:label>
    <link:label xlink:label="us-gaap_ContractWithCustomerLiability-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Balance</link:label>
    <link:label xlink:label="us-gaap_ContractWithCustomerLiability-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Balance</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiability" xlink:to="us-gaap_ContractWithCustomerLiability-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_IncomeBeforeTaxesPercent" xlink:label="dsgx_IncomeBeforeTaxesPercent" xlink:type="locator"/>
    <link:label xlink:label="dsgx_IncomeBeforeTaxesPercent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">dsgx_IncomeBeforeTaxesPercent</link:label>
    <link:label xlink:label="dsgx_IncomeBeforeTaxesPercent-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income Before Taxes, Percent</link:label>
    <link:label xlink:label="dsgx_IncomeBeforeTaxesPercent-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Income tax expense expressed as a percentage of income before taxes.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_IncomeBeforeTaxesPercent" xlink:to="dsgx_IncomeBeforeTaxesPercent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingStandardsUpdate201602Member" xlink:label="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccountingStandardsUpdate201602Member-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounting Standards Update 2016-02 [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountingStandardsUpdate201602Member" xlink:to="us-gaap_AccountingStandardsUpdate201602Member-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_OtherCountriesMember" xlink:label="dsgx_OtherCountriesMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_OtherCountriesMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Countries [Member]</link:label>
    <link:label xlink:label="dsgx_OtherCountriesMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents other countries.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_OtherCountriesMember" xlink:to="dsgx_OtherCountriesMember-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredTaxAssetsNetBeforeValuationAllowance" xlink:label="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance" xlink:type="locator"/>
    <link:label xlink:label="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">dsgx_DeferredTaxAssetsNetBeforeValuationAllowance</link:label>
    <link:label xlink:label="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net deferred income taxes</link:label>
    <link:label xlink:label="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount before allocation of valuation allowances of deferred tax assets.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance" xlink:to="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities</link:label>
    <link:label xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Payment of contingent consideration</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_TypeOfAdoptionMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounting Standards Update [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TypeOfAdoptionMember" xlink:to="us-gaap_TypeOfAdoptionMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment</link:label>
    <link:label xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Difference between tax and accounting basis of property and equipment</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:to="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LettersOfCreditOutstandingAmount" xlink:label="us-gaap_LettersOfCreditOutstandingAmount" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LettersOfCreditOutstandingAmount-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LettersOfCreditOutstandingAmount</link:label>
    <link:label xlink:label="us-gaap_LettersOfCreditOutstandingAmount-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Letters of Credit Outstanding, Amount</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LettersOfCreditOutstandingAmount" xlink:to="us-gaap_LettersOfCreditOutstandingAmount-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounting Standards Update [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_ScheduleOfCondensedCashFlowStatementTableTextBlock" xlink:label="srt_ScheduleOfCondensedCashFlowStatementTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="srt_ScheduleOfCondensedCashFlowStatementTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Condensed Cash Flow Statement [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ScheduleOfCondensedCashFlowStatementTableTextBlock" xlink:to="srt_ScheduleOfCondensedCashFlowStatementTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock" xlink:label="us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Income and Other Expense Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock" xlink:to="us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UndistributedEarningsOfForeignSubsidiaries" xlink:label="us-gaap_UndistributedEarningsOfForeignSubsidiaries" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_UndistributedEarningsOfForeignSubsidiaries-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_UndistributedEarningsOfForeignSubsidiaries</link:label>
    <link:label xlink:label="us-gaap_UndistributedEarningsOfForeignSubsidiaries-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Undistributed Earnings of Foreign Subsidiaries</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UndistributedEarningsOfForeignSubsidiaries" xlink:to="us-gaap_UndistributedEarningsOfForeignSubsidiaries-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CostsAndExpensesAbstract" xlink:label="us-gaap_CostsAndExpensesAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CostsAndExpensesAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">EXPENSES</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_CostsAndExpensesAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RetainedEarningsMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Retained Earnings [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RetainedEarningsMember" xlink:to="us-gaap_RetainedEarningsMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="us-gaap_ProceedsFromStockOptionsExercised" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ProceedsFromStockOptionsExercised-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ProceedsFromStockOptionsExercised</link:label>
    <link:label xlink:label="us-gaap_ProceedsFromStockOptionsExercised-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Proceeds from Stock Options Exercised</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromStockOptionsExercised" xlink:to="us-gaap_ProceedsFromStockOptionsExercised-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:type="locator"/>
    <link:label xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Title of Individual [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:to="srt_TitleOfIndividualWithRelationshipToEntityDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:label="us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ProceedsFromIssuanceOfCommonStock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Issuance of common shares for cash, net of issuance costs (Note 15)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:to="us-gaap_ProceedsFromIssuanceOfCommonStock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_TitleOfIndividualAxis" xlink:label="srt_TitleOfIndividualAxis" xlink:type="locator"/>
    <link:label xlink:label="srt_TitleOfIndividualAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Title of Individual [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AdditionalPaidInCapitalMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Additional Paid-in Capital [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdditionalPaidInCapitalMember" xlink:to="us-gaap_AdditionalPaidInCapitalMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CurrentFederalTaxExpenseBenefit" xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_CurrentFederalTaxExpenseBenefit</link:label>
    <link:label xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Current Federal Tax Expense (Benefit)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CurrentFederalTaxExpenseBenefit" xlink:to="us-gaap_CurrentFederalTaxExpenseBenefit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CommonStockMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockMember" xlink:to="us-gaap_CommonStockMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredFederalIncomeTaxExpenseBenefit</link:label>
    <link:label xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred Federal Income Tax Expense (Benefit)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredFederalIncomeTaxExpenseBenefit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StatementEquityComponentsAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Components [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_StatementEquityComponentsAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EquityComponentDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Component [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_EquityComponentDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Current</link:label>
    <link:label xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current income tax expense</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_RevenueRemainingPerformanceObligationPercentage</link:label>
    <link:label xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue, Remaining Performance Obligation, Percentage</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:to="us-gaap_RevenueRemainingPerformanceObligationPercentage-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1</link:label>
    <link:label xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period (Month)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="us-gaap_RevenueRemainingPerformanceObligation" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RevenueRemainingPerformanceObligation-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_RevenueRemainingPerformanceObligation</link:label>
    <link:label xlink:label="us-gaap_RevenueRemainingPerformanceObligation-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue, Remaining Performance Obligation, Amount</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligation" xlink:to="us-gaap_RevenueRemainingPerformanceObligation-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">INCOME TAX EXPENSE (Note 18)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:label="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts Receivable, Allowance for Credit Loss [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:to="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossTaxAbstract" xlink:label="us-gaap_OtherComprehensiveIncomeLossTaxAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherComprehensiveIncomeLossTaxAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other comprehensive income (loss):</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherComprehensiveIncomeLossTaxAbstract" xlink:to="us-gaap_OtherComprehensiveIncomeLossTaxAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredRevenueNoncurrent" xlink:label="us-gaap_DeferredRevenueNoncurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredRevenueNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredRevenueNoncurrent</link:label>
    <link:label xlink:label="us-gaap_DeferredRevenueNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">DEFERRED REVENUE (Note 19)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredRevenueNoncurrent" xlink:to="us-gaap_DeferredRevenueNoncurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCredit" xlink:label="us-gaap_LineOfCredit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LineOfCredit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LineOfCredit</link:label>
    <link:label xlink:label="us-gaap_LineOfCredit-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Long-term Line of Credit, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCredit" xlink:to="us-gaap_LineOfCredit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsOfDebtIssuanceCosts" xlink:label="us-gaap_PaymentsOfDebtIssuanceCosts" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PaymentsOfDebtIssuanceCosts-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_PaymentsOfDebtIssuanceCosts</link:label>
    <link:label xlink:label="us-gaap_PaymentsOfDebtIssuanceCosts-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Payment of debt issuance costs</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsOfDebtIssuanceCosts" xlink:to="us-gaap_PaymentsOfDebtIssuanceCosts-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityNameAxis" xlink:label="us-gaap_IncomeTaxAuthorityNameAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxAuthorityNameAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Authority, Name [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxAuthorityNameAxis" xlink:to="us-gaap_IncomeTaxAuthorityNameAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityNameDomain" xlink:label="us-gaap_IncomeTaxAuthorityNameDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxAuthorityNameDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Authority, Name [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxAuthorityNameDomain" xlink:to="us-gaap_IncomeTaxAuthorityNameDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InternalRevenueServiceIRSMember" xlink:label="us-gaap_InternalRevenueServiceIRSMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InternalRevenueServiceIRSMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Internal Revenue Service (IRS) [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InternalRevenueServiceIRSMember" xlink:to="us-gaap_InternalRevenueServiceIRSMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxAuthorityAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Authority [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxAuthorityDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Authority [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="us-gaap_IncomeTaxAuthorityDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DomesticCountryMember" xlink:label="us-gaap_DomesticCountryMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DomesticCountryMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Domestic Tax Authority [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DomesticCountryMember" xlink:to="us-gaap_DomesticCountryMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCountryMember" xlink:label="us-gaap_ForeignCountryMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ForeignCountryMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Foreign Tax Authority [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ForeignCountryMember" xlink:to="us-gaap_ForeignCountryMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquipmentMember" xlink:label="us-gaap_EquipmentMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EquipmentMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equipment [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EquipmentMember" xlink:to="us-gaap_EquipmentMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue from Contract with Customer [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:to="us-gaap_RevenueFromContractWithCustomerTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:label="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Receivables, Trade and Other Accounts Receivable, Allowance for Doubtful Accounts, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:to="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit" xlink:label="us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit</link:label>
    <link:label xlink:label="us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Significant Change in Unrecognized Tax Benefits is Reasonably Possible, Amount of Unrecorded Benefit</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit" xlink:to="us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ComputerEquipmentMember" xlink:label="us-gaap_ComputerEquipmentMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ComputerEquipmentMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Computer Equipment [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ComputerEquipmentMember" xlink:to="us-gaap_ComputerEquipmentMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash and Cash Equivalents, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:to="us-gaap_CashAndCashEquivalentsPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">General and Administrative Expense [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GeneralAndAdministrativeExpenseMember" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="us-gaap_UnrecognizedTaxBenefits" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_UnrecognizedTaxBenefits-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_UnrecognizedTaxBenefits</link:label>
    <link:label xlink:label="us-gaap_UnrecognizedTaxBenefits-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Liability, beginning of year</link:label>
    <link:label xlink:label="us-gaap_UnrecognizedTaxBenefits-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Liability, end of year</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UnrecognizedTaxBenefits" xlink:to="us-gaap_UnrecognizedTaxBenefits-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xlink:label="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate</link:label>
    <link:label xlink:label="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits that Would Impact Effective Tax Rate</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xlink:to="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccountingPoliciesAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounting Policies [Abstract]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_AccountingPoliciesAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SignificantAccountingPoliciesTextBlock" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Significant Accounting Policies [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SignificantAccountingPoliciesTextBlock" xlink:to="us-gaap_SignificantAccountingPoliciesTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:label="us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BasisOfAccountingPolicyPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Basis of Accounting, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:to="us-gaap_BasisOfAccountingPolicyPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:label="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations</link:label>
    <link:label xlink:label="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Lapsing due to statutes of limitations</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:to="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityInteractiveDataCurrent" xlink:label="dei_EntityInteractiveDataCurrent" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityInteractiveDataCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Interactive Data Current</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityInteractiveDataCurrent" xlink:to="dei_EntityInteractiveDataCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SellingAndMarketingExpenseMember" xlink:label="us-gaap_SellingAndMarketingExpenseMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SellingAndMarketingExpenseMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Selling and Marketing Expense [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SellingAndMarketingExpenseMember" xlink:to="us-gaap_SellingAndMarketingExpenseMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Gross increases &#8211; current period</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:to="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs</link:label>
    <link:label xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Write-offs charged against the provision</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CostOfSalesMember" xlink:label="us-gaap_CostOfSalesMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CostOfSalesMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cost of Sales [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostOfSalesMember" xlink:to="us-gaap_CostOfSalesMember-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DerivativeInstrumentSharesOfCommonStockHeld" xlink:label="dsgx_DerivativeInstrumentSharesOfCommonStockHeld" xlink:type="locator"/>
    <link:label xlink:label="dsgx_DerivativeInstrumentSharesOfCommonStockHeld-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">dsgx_DerivativeInstrumentSharesOfCommonStockHeld</link:label>
    <link:label xlink:label="dsgx_DerivativeInstrumentSharesOfCommonStockHeld-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative Instrument, Shares of Common Stock Held (in shares)</link:label>
    <link:label xlink:label="dsgx_DerivativeInstrumentSharesOfCommonStockHeld-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The number of shares held by certain derivative instruments entered into by the company.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DerivativeInstrumentSharesOfCommonStockHeld" xlink:to="dsgx_DerivativeInstrumentSharesOfCommonStockHeld-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DerivativeInstrumentCommonSharesHeldPerShare" xlink:label="dsgx_DerivativeInstrumentCommonSharesHeldPerShare" xlink:type="locator"/>
    <link:label xlink:label="dsgx_DerivativeInstrumentCommonSharesHeldPerShare-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">dsgx_DerivativeInstrumentCommonSharesHeldPerShare</link:label>
    <link:label xlink:label="dsgx_DerivativeInstrumentCommonSharesHeldPerShare-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative Instrument, Common Shares Held, Per Share (in dollars per share)</link:label>
    <link:label xlink:label="dsgx_DerivativeInstrumentCommonSharesHeldPerShare-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The per share amount of common shares held by certain derivative instruments entered into by the company.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DerivativeInstrumentCommonSharesHeldPerShare" xlink:to="dsgx_DerivativeInstrumentCommonSharesHeldPerShare-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShelfProspectusMember" xlink:label="dsgx_ShelfProspectusMember" xlink:type="locator"/>
    <link:label xlink:label="dsgx_ShelfProspectusMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Shelf Prospectus [Member]</link:label>
    <link:label xlink:label="dsgx_ShelfProspectusMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Related to the short-form base shelf prospectus entered into by the company.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ShelfProspectusMember" xlink:to="dsgx_ShelfProspectusMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ResearchAndDevelopmentExpenseMember" xlink:label="us-gaap_ResearchAndDevelopmentExpenseMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ResearchAndDevelopmentExpenseMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Research and Development Expense [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ResearchAndDevelopmentExpenseMember" xlink:to="us-gaap_ResearchAndDevelopmentExpenseMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeStatementLocationAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Statement Location [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_Range4Member" xlink:label="dsgx_Range4Member" xlink:type="locator"/>
    <link:label xlink:label="dsgx_Range4Member-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Range 4 [Member]</link:label>
    <link:label xlink:label="dsgx_Range4Member-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Related to the fourth exercise price range.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_Range4Member" xlink:to="dsgx_Range4Member-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeStatementLocationDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Statement Location [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_IncomeStatementLocationDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xlink:label="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Accounts, Notes, Loans and Financing Receivable [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xlink:to="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TaxPeriodDomain" xlink:label="us-gaap_TaxPeriodDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_TaxPeriodDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Tax Period [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TaxPeriodDomain" xlink:to="us-gaap_TaxPeriodDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredTaxAssetsLiabilitesNet1" xlink:label="dsgx_DeferredTaxAssetsLiabilitesNet1" xlink:type="locator"/>
    <link:label xlink:label="dsgx_DeferredTaxAssetsLiabilitesNet1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">dsgx_DeferredTaxAssetsLiabilitesNet1</link:label>
    <link:label xlink:label="dsgx_DeferredTaxAssetsLiabilitesNet1-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net deferred income taxes, net of valuation allowance</link:label>
    <link:label xlink:label="dsgx_DeferredTaxAssetsLiabilitesNet1-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount, after allocation of valuation allowances, of deferred tax asset (liability) attributable to deductible differences and carryforwards, without jurisdictional netting.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_DeferredTaxAssetsLiabilitesNet1" xlink:to="dsgx_DeferredTaxAssetsLiabilitesNet1-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TaxPeriodAxis" xlink:label="us-gaap_TaxPeriodAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_TaxPeriodAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Tax Period [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TaxPeriodAxis" xlink:to="us-gaap_TaxPeriodAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShelfProspectusPeriod" xlink:label="dsgx_ShelfProspectusPeriod" xlink:type="locator"/>
    <link:label xlink:label="dsgx_ShelfProspectusPeriod-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">dsgx_ShelfProspectusPeriod</link:label>
    <link:label xlink:label="dsgx_ShelfProspectusPeriod-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Shelf Prospectus Period (Month)</link:label>
    <link:label xlink:label="dsgx_ShelfProspectusPeriod-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The duration of the shelf prospectus.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ShelfProspectusPeriod" xlink:to="dsgx_ShelfProspectusPeriod-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount</link:label>
    <link:label xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Diluted (in shares)</link:label>
    <link:label xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Weighted average common and common equivalent shares outstanding (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding-label" xlink:type="arc"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShelfProspectusMaximumAmount" xlink:label="dsgx_ShelfProspectusMaximumAmount" xlink:type="locator"/>
    <link:label xlink:label="dsgx_ShelfProspectusMaximumAmount-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">dsgx_ShelfProspectusMaximumAmount</link:label>
    <link:label xlink:label="dsgx_ShelfProspectusMaximumAmount-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Shelf Prospectus, Maximum Amount</link:label>
    <link:label xlink:label="dsgx_ShelfProspectusMaximumAmount-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The maximum amount related to the shelf prospectus.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dsgx_ShelfProspectusMaximumAmount" xlink:to="dsgx_ShelfProspectusMaximumAmount-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLossCarryforwards" xlink:label="us-gaap_OperatingLossCarryforwards" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLossCarryforwards-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating loss carryforwards</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLossCarryforwards" xlink:to="us-gaap_OperatingLossCarryforwards-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromLinesOfCredit" xlink:label="us-gaap_ProceedsFromLinesOfCredit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ProceedsFromLinesOfCredit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Proceeds from borrowing on the credit facility</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromLinesOfCredit" xlink:to="us-gaap_ProceedsFromLinesOfCredit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock" xlink:label="us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Summary of Operating Loss Carryforwards [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock" xlink:to="us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StatementTable-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement [Table]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementTable-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StatementOfFinancialPositionAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Financial Position [Abstract]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_StatementOfFinancialPositionAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EarningsPerShareDiluted-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Diluted (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareDiluted" xlink:to="us-gaap_EarningsPerShareDiluted-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Basic (in shares)</link:label>
    <link:label xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Weighted average shares outstanding (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:label="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts Payable and Accrued Liabilities Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:to="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_EffectiveIncomeTaxRateContinuingOperations</link:label>
    <link:label xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Percent, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:to="us-gaap_EffectiveIncomeTaxRateContinuingOperations-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessAcquisitionAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Acquisition [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EarningsPerShareBasic-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Basic (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareBasic" xlink:to="us-gaap_EarningsPerShareBasic-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Acquisition, Acquiree [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:to="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="us-gaap_StatementOfCashFlowsAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StatementOfCashFlowsAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Cash Flows [Abstract]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_StatementOfCashFlowsAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock" xlink:label="us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Revenue from External Customers Attributed to Foreign Countries by Geographic Area [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock" xlink:to="us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Combination, Contingent Consideration Arrangements, Range of Outcomes, Value, High</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" xlink:label="us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Disclosure on Geographic Areas, Long-Lived Assets in Individual Foreign Countries by Country [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" xlink:to="us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StatementOfStockholdersEquityAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Stockholders' Equity [Abstract]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfStockholdersEquityAbstract" xlink:to="us-gaap_StatementOfStockholdersEquityAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementAbstract" xlink:label="us-gaap_IncomeStatementAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeStatementAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Statement [Abstract]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_IncomeStatementAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other comprehensive income (loss), net of income taxes</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringReserve" xlink:label="us-gaap_RestructuringReserve" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RestructuringReserve-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_RestructuringReserve</link:label>
    <link:label xlink:label="us-gaap_RestructuringReserve-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Balance</link:label>
    <link:label xlink:label="us-gaap_RestructuringReserve-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Balance</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringReserve" xlink:to="us-gaap_RestructuringReserve-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationContingentConsiderationLiability</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Combination, Contingent Consideration, Liability, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiability-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseRemainingLeaseTerm" xlink:label="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LesseeOperatingLeaseRemainingLeaseTerm</link:label>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Remaining Lease Term (Year)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm" xlink:to="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Accrued Liabilities [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:to="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringReserveTranslationAdjustment" xlink:label="us-gaap_RestructuringReserveTranslationAdjustment" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RestructuringReserveTranslationAdjustment-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_RestructuringReserveTranslationAdjustment</link:label>
    <link:label xlink:label="us-gaap_RestructuringReserveTranslationAdjustment-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Foreign exchange</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringReserveTranslationAdjustment" xlink:to="us-gaap_RestructuringReserveTranslationAdjustment-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RepaymentsOfDebt" xlink:label="us-gaap_RepaymentsOfDebt" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RepaymentsOfDebt-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_RepaymentsOfDebt</link:label>
    <link:label xlink:label="us-gaap_RepaymentsOfDebt-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Credit facility repayments</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RepaymentsOfDebt" xlink:to="us-gaap_RepaymentsOfDebt-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringReserveAccrualAdjustment1" xlink:label="us-gaap_RestructuringReserveAccrualAdjustment1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RestructuringReserveAccrualAdjustment1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accruals and adjustments</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringReserveAccrualAdjustment1" xlink:to="us-gaap_RestructuringReserveAccrualAdjustment1-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" xlink:label="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Acquisitions (Note 3) (in shares)</link:label>
    <link:label xlink:label="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Acquisition, Equity Interest Issued or Issuable, Number of Shares (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" xlink:to="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:label="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Income before Income Tax, Domestic and Foreign [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:to="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1" xlink:label="us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1</link:label>
    <link:label xlink:label="us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Restructuring and Related Cost, Expected Cost Remaining</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1" xlink:to="us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:label="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Unrecognized Tax Benefits Roll Forward [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:to="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:label="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:to="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Deferred Tax Assets and Liabilities [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:to="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:label="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:to="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringPlanAxis" xlink:label="us-gaap_RestructuringPlanAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RestructuringPlanAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restructuring Plan [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringPlanAxis" xlink:to="us-gaap_RestructuringPlanAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringPlanDomain" xlink:label="us-gaap_RestructuringPlanDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RestructuringPlanDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restructuring Plan [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringPlanDomain" xlink:to="us-gaap_RestructuringPlanDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfRestructuringDomain" xlink:label="us-gaap_TypeOfRestructuringDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_TypeOfRestructuringDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Type of Restructuring [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TypeOfRestructuringDomain" xlink:to="us-gaap_TypeOfRestructuringDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FacilityClosingMember" xlink:label="us-gaap_FacilityClosingMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FacilityClosingMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Facility Closing [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FacilityClosingMember" xlink:to="us-gaap_FacilityClosingMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeSeveranceMember" xlink:label="us-gaap_EmployeeSeveranceMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EmployeeSeveranceMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Employee Severance [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeSeveranceMember" xlink:to="us-gaap_EmployeeSeveranceMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringCostAndReserveAxis" xlink:label="us-gaap_RestructuringCostAndReserveAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RestructuringCostAndReserveAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restructuring Type [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringCostAndReserveAxis" xlink:to="us-gaap_RestructuringCostAndReserveAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationOtherAdjustments" xlink:label="us-gaap_IncomeTaxReconciliationOtherAdjustments" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxReconciliationOtherAdjustments-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncomeTaxReconciliationOtherAdjustments</link:label>
    <link:label xlink:label="us-gaap_IncomeTaxReconciliationOtherAdjustments-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other, including foreign exchange</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationOtherAdjustments" xlink:to="us-gaap_IncomeTaxReconciliationOtherAdjustments-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock" xlink:label="us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Common Stock Outstanding Roll Forward [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock" xlink:to="us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">FINANCING ACTIVITIES</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate</link:label>
    <link:label xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Combined basic Canadian statutory rates</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate" xlink:label="us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate</link:label>
    <link:label xlink:label="us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Effect of rate changes on current year timing differences</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate" xlink:to="us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes" xlink:label="us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes</link:label>
    <link:label xlink:label="us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Adjustments relating to previous periods</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes" xlink:to="us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance</link:label>
    <link:label xlink:label="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Valuation allowance</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:to="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Combination, Acquired Receivables, Gross Contractual Amount</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount" xlink:to="us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Combination, Acquired Receivables, Estimated Uncollectible</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible" xlink:to="us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:label="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LiabilityForUncertainTaxPositionsNoncurrent</link:label>
    <link:label xlink:label="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Liability for Uncertainty in Income Taxes, Noncurrent</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:to="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationAcquiredReceivablesFairValue" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesFairValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesFairValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationAcquiredReceivablesFairValue</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesFairValue-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Combination, Acquired Receivable, Fair Value</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationAcquiredReceivablesFairValue" xlink:to="us-gaap_BusinessCombinationAcquiredReceivablesFairValue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Debt</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-term</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:to="us-gaap_ContractWithCustomerLiabilityNoncurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StockholdersEquity-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_StockholdersEquity</link:label>
    <link:label xlink:label="us-gaap_StockholdersEquity-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Stockholders' Equity Attributable to Parent, Ending Balance</link:label>
    <link:label xlink:label="us-gaap_StockholdersEquity-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Balance</link:label>
    <link:label xlink:label="us-gaap_StockholdersEquity-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Balance</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_StockholdersEquity-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedIncomeTaxesNoncurrent" xlink:label="us-gaap_AccruedIncomeTaxesNoncurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccruedIncomeTaxesNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_AccruedIncomeTaxesNoncurrent</link:label>
    <link:label xlink:label="us-gaap_AccruedIncomeTaxesNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">INCOME TAXES PAYABLE</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedIncomeTaxesNoncurrent" xlink:to="us-gaap_AccruedIncomeTaxesNoncurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Cash, net of cash acquired</link:label>
    <link:label xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash, net of cash acquired</link:label>
    <link:label xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Payments to Acquire Businesses, Net of Cash Acquired, Total</link:label>
    <link:label xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Acquisition of subsidiaries, net of cash acquired (Note 3)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Current liabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="us-gaap_StatementClassOfStockAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StatementClassOfStockAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Class of Stock [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementClassOfStockAxis" xlink:to="us-gaap_StatementClassOfStockAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAcquiredFromAcquisition" xlink:label="us-gaap_CashAcquiredFromAcquisition" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CashAcquiredFromAcquisition-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash acquired</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAcquiredFromAcquisition" xlink:to="us-gaap_CashAcquiredFromAcquisition-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Deferred income tax liability</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost</link:label>
    <link:label xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock based compensation</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:to="us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LongTermDebtNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">LONG-TERM DEBT (Note 12)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebtNoncurrent" xlink:to="us-gaap_LongTermDebtNoncurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Deferred revenue</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock" xlink:label="us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Derivative Assets at Fair Value [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock" xlink:to="us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Weighted Average Exercise Price, Options Outstanding (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" xlink:to="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Weighted Average Remaining Contractual Life, Options Outstanding (Year)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" xlink:to="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" xlink:label="us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Restructuring Reserve by Type of Cost [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" xlink:to="us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Number of Stock Options, Options Exercisable (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1" xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Weighted Average Exercise Price, Options Exercisable (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1" xlink:to="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization</link:label>
    <link:label xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Permanent differences including amortization of intangible assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization" xlink:to="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Range of Exercise Prices, Upper Limit (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred income tax asset</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Number of Stock Options, Options Outstanding (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Exercise Price Range [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherReceivablesNetCurrent" xlink:label="us-gaap_OtherReceivablesNetCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherReceivablesNetCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other (Note 6)</link:label>
    <link:label xlink:label="us-gaap_OtherReceivablesNetCurrent-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Other Receivables, Net, Current, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherReceivablesNetCurrent" xlink:to="us-gaap_OtherReceivablesNetCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Exercise Price Range [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:label="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential</link:label>
    <link:label xlink:label="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Effect of differences between Canadian and foreign tax rates</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:to="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property and equipment</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Range of Exercise Prices, Lower Limit (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other long-term assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets-label" xlink:type="arc"/>
  </link:labelLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.PRE
<SEQUENCE>12
<FILENAME>dsgx-20210131_pre.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!--Generated by ThunderDome XBRL - 01:19AM UTC 2021-03-23--><link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xlink="http://www.w3.org/1999/xlink" 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">
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-21-supplemental-cash-flow-information" xlink:href="dsgx-20210131.xsd#statement-note-21-supplemental-cash-flow-information" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-21-supplemental-cash-flow-information" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="dsgx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:label="us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-11-accrued-liabilities" xlink:href="dsgx-20210131.xsd#statement-note-11-accrued-liabilities" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-11-accrued-liabilities" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="dsgx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:label="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-10-goodwill" xlink:href="dsgx-20210131.xsd#statement-note-10-goodwill" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-10-goodwill" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="dsgx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillDisclosureTextBlock" xlink:label="us-gaap_GoodwillDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_GoodwillDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement--note-8-property-and-equipment-" xlink:href="dsgx-20210131.xsd#statement--note-8-property-and-equipment-" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement--note-8-property-and-equipment-" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="dsgx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-1-description-of-the-business" xlink:href="dsgx-20210131.xsd#statement-note-1-description-of-the-business" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-1-description-of-the-business" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="dsgx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" xlink:label="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-document-and-entity-information" xlink:href="dsgx-20210131.xsd#statement-document-and-entity-information" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-document-and-entity-information" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_CurrentFiscalYearEndDate" xlink:label="dei_CurrentFiscalYearEndDate" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="dei_DocumentFiscalPeriodFocus" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentFiscalYearFocus" xlink:label="dei_DocumentFiscalYearFocus" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentInformationLineItems" xlink:label="dei_DocumentInformationLineItems" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentInformationTable" xlink:label="dei_DocumentInformationTable" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentType" xlink:label="dei_DocumentType" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="dei_EntityCommonStockSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCurrentReportingStatus" xlink:label="dei_EntityCurrentReportingStatus" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityFilerCategory" xlink:label="dei_EntityFilerCategory" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityInteractiveDataCurrent" xlink:label="dei_EntityInteractiveDataCurrent" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityShellCompany" xlink:label="dei_EntityShellCompany" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntitySmallBusiness" xlink:label="dei_EntitySmallBusiness" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityVoluntaryFilers" xlink:label="dei_EntityVoluntaryFilers" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityWellKnownSeasonedIssuer" xlink:label="dei_EntityWellKnownSeasonedIssuer" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationTable" xlink:to="dei_DocumentInformationLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityRegistrantName" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityCentralIndexKey" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_CurrentFiscalYearEndDate" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityFilerCategory" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityCurrentReportingStatus" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityVoluntaryFilers" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityWellKnownSeasonedIssuer" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityEmergingGrowthCompany" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntitySmallBusiness" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityInteractiveDataCurrent" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityCommonStockSharesOutstanding" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityShellCompany" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentType" xlink:type="arc"/>
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentPeriodEndDate" xlink:type="arc"/>
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentFiscalYearFocus" xlink:type="arc"/>
    <link:presentationArc order="15" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentFiscalPeriodFocus" xlink:type="arc"/>
    <link:presentationArc order="16" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_AmendmentFlag" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-consolidated-balance-sheets-parentheticals" xlink:href="dsgx-20210131.xsd#statement-consolidated-balance-sheets-parentheticals" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-consolidated-balance-sheets-parentheticals" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CommonStockSharesIssued" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CommonStockSharesOutstanding" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-consolidated-statements-of-comprehensive-income-parentheticals" xlink:href="dsgx-20210131.xsd#statement-consolidated-statements-of-comprehensive-income-parentheticals" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-consolidated-statements-of-comprehensive-income-parentheticals" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:label="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-2-basis-of-presentation" xlink:href="dsgx-20210131.xsd#statement-note-2-basis-of-presentation" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-2-basis-of-presentation" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CashsettledRestrictedSharePlanMember" xlink:label="dsgx_CashsettledRestrictedSharePlanMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredShareUnitPlanMember" xlink:label="dsgx_DeferredShareUnitPlanMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DirectorsAndOfficersMember" xlink:label="dsgx_DirectorsAndOfficersMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ExistingTechnologyMember" xlink:label="dsgx_ExistingTechnologyMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="dsgx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_TheAccountingStandardsUpdate201616Member" xlink:label="dsgx_TheAccountingStandardsUpdate201616Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_TitleOfIndividualAxis" xlink:label="srt_TitleOfIndividualAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingStandardsUpdate201409Member" xlink:label="us-gaap_AccountingStandardsUpdate201409Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingStandardsUpdate201602Member" xlink:label="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ComputerEquipmentMember" xlink:label="us-gaap_ComputerEquipmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquipmentMember" xlink:label="us-gaap_EquipmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FurnitureAndFixturesMember" xlink:label="us-gaap_FurnitureAndFixturesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SignificantAccountingPoliciesTextBlock" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_CustomerRelationshipsMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="dsgx_ExistingTechnologyMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_TradeNamesMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_NoncompeteAgreementsMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_ComputerEquipmentMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_FurnitureAndFixturesMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_EquipmentMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_EmployeeStockOptionMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_TitleOfIndividualAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_TitleOfIndividualAxis" xlink:to="dsgx_DirectorsAndOfficersMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_PerformanceSharesMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="dsgx_DeferredShareUnitPlanMember" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="dsgx_CashsettledRestrictedSharePlanMember" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_AccountingStandardsUpdate201409Member" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="dsgx_TheAccountingStandardsUpdate201616Member" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_SignificantAccountingPoliciesTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-3-acquisitions" xlink:href="dsgx-20210131.xsd#statement-note-3-acquisitions" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-3-acquisitions" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_AljexSoftwareIncMember" xlink:label="dsgx_AljexSoftwareIncMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BesttransportMember" xlink:label="dsgx_BesttransportMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_KontainersMember" xlink:label="dsgx_KontainersMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="dsgx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_PeoplevoxMember" xlink:label="dsgx_PeoplevoxMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_PinPointMember" xlink:label="dsgx_PinPointMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShipTrackMember" xlink:label="dsgx_ShipTrackMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_StepcomMember" xlink:label="dsgx_StepcomMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_The2021AcquisitionsMember" xlink:label="dsgx_The2021AcquisitionsMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VelocityMailMember" xlink:label="dsgx_VelocityMailMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationDisclosureTextBlock" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_PeoplevoxMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_KontainersMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_ShipTrackMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_The2021AcquisitionsMember" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_VisualComplianceMember" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_StepcomMember" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_BesttransportMember" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_AljexSoftwareIncMember" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_VelocityMailMember" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_PinPointMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_BusinessCombinationDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-4-fair-value-measurements" xlink:href="dsgx-20210131.xsd#statement-note-4-fair-value-measurements" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-4-fair-value-measurements" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="dsgx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueDisclosuresTextBlock" xlink:label="us-gaap_FairValueDisclosuresTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeStatementLocationAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_FairValueDisclosuresTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable" xlink:href="dsgx-20210131.xsd#statement-note-5-trade-accounts-receivable" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="dsgx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" xlink:label="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-6-other-receivables" xlink:href="dsgx-20210131.xsd#statement-note-6-other-receivables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-6-other-receivables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="dsgx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_OtherReceivablesTextBlock" xlink:label="dsgx_OtherReceivablesTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="dsgx_OtherReceivablesTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-7-inventory" xlink:href="dsgx-20210131.xsd#statement-note-7-inventory" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-7-inventory" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="dsgx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryDisclosureTextBlock" xlink:label="us-gaap_InventoryDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_InventoryDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-9-intangible-assets" xlink:href="dsgx-20210131.xsd#statement-note-9-intangible-assets" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-9-intangible-assets" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="dsgx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-12-longterm-debt" xlink:href="dsgx-20210131.xsd#statement-note-12-longterm-debt" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-12-longterm-debt" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CanadaOrUsPrimeRateBaOrLiborMember" xlink:label="dsgx_CanadaOrUsPrimeRateBaOrLiborMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember" xlink:label="dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="dsgx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_RevolvingOperatingCreditFacilityMember" xlink:label="dsgx_RevolvingOperatingCreditFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_SeniorSecuredCreditFacilityMember" xlink:label="dsgx_SeniorSecuredCreditFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtDisclosureTextBlock" xlink:label="us-gaap_DebtDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_CreditFacilityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="dsgx_RevolvingOperatingCreditFacilityMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DebtInstrumentAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="dsgx_SeniorSecuredCreditFacilityMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_VariableRateAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateAxis" xlink:to="dsgx_CanadaOrUsPrimeRateBaOrLiborMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="dsgx_SeniorSecuredCreditFacilityMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_DebtDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-13-leases" xlink:href="dsgx-20210131.xsd#statement-note-13-leases" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-13-leases" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="dsgx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeasesTextBlock" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_LesseeOperatingLeasesTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-14-commitments-contingencies-and-guarantees" xlink:href="dsgx-20210131.xsd#statement-note-14-commitments-contingencies-and-guarantees" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-14-commitments-contingencies-and-guarantees" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_COREKontainersAndShipTrackMember" xlink:label="dsgx_COREKontainersAndShipTrackMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="dsgx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_COREKontainersAndShipTrackMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-15-share-capital" xlink:href="dsgx-20210131.xsd#statement-note-15-share-capital" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-15-share-capital" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="dsgx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShareCapitalTextBlock" xlink:label="dsgx_ShareCapitalTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShelfProspectusMember" xlink:label="dsgx_ShelfProspectusMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_The2020BaseShelfProspectusMember" xlink:label="dsgx_The2020BaseShelfProspectusMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SaleOfStockNameOfTransactionDomain" xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsidiarySaleOfStockAxis" xlink:label="us-gaap_SubsidiarySaleOfStockAxis" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsidiarySaleOfStockAxis" xlink:to="us-gaap_SaleOfStockNameOfTransactionDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_SubsidiarySaleOfStockAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsidiarySaleOfStockAxis" xlink:to="dsgx_ShelfProspectusMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsidiarySaleOfStockAxis" xlink:to="dsgx_The2020BaseShelfProspectusMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="dsgx_ShareCapitalTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-16-earnings-per-share" xlink:href="dsgx-20210131.xsd#statement-note-16-earnings-per-share" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-16-earnings-per-share" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="dsgx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_PSUsAndRSUsMember" xlink:label="dsgx_PSUsAndRSUsMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_StockOptionsTreasuryStockMethodMember" xlink:label="dsgx_StockOptionsTreasuryStockMethodMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="us-gaap_EarningsPerShareTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="us-gaap_EmployeeStockOptionMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="dsgx_StockOptionsTreasuryStockMethodMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="dsgx_PSUsAndRSUsMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_EarningsPerShareTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans" xlink:href="dsgx-20210131.xsd#statement-note-17-stockbased-compensation-plans" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CashsettledRestrictedShareUnitMember" xlink:label="dsgx_CashsettledRestrictedShareUnitMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredShareUnitPlanMember" xlink:label="dsgx_DeferredShareUnitPlanMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="dsgx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShareholderapprovedStockOptionPlanMember" xlink:label="dsgx_ShareholderapprovedStockOptionPlanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PlanNameAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameAxis" xlink:to="dsgx_ShareholderapprovedStockOptionPlanMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_EmployeeStockOptionMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_PerformanceSharesMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameAxis" xlink:to="dsgx_DeferredShareUnitPlanMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameAxis" xlink:to="dsgx_CashsettledRestrictedShareUnitMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-18-income-taxes" xlink:href="dsgx-20210131.xsd#statement-note-18-income-taxes" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-18-income-taxes" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="dsgx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember" xlink:label="dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:label="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ChangeInAccountingPrincipleMember" xlink:label="us-gaap_ChangeInAccountingPrincipleMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:to="us-gaap_ChangeInAccountingPrincipleMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:to="dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs" xlink:href="dsgx-20210131.xsd#statement-note-19-contract-balances-performance-obligations-and-contract-costs" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="dsgx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-20-other-charges" xlink:href="dsgx-20210131.xsd#statement-note-20-other-charges" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-20-other-charges" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_Fiscal2021RestructuringPlanMember" xlink:label="dsgx_Fiscal2021RestructuringPlanMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="dsgx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock" xlink:label="us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringPlanAxis" xlink:label="us-gaap_RestructuringPlanAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringPlanDomain" xlink:label="us-gaap_RestructuringPlanDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringPlanAxis" xlink:to="us-gaap_RestructuringPlanDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_RestructuringPlanAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringPlanAxis" xlink:to="dsgx_Fiscal2021RestructuringPlanMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-22-segmented-information" xlink:href="dsgx-20210131.xsd#statement-note-22-segmented-information" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-22-segmented-information" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="dsgx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_SegmentReportingDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-23-subsequent-event-" xlink:href="dsgx-20210131.xsd#statement-note-23-subsequent-event-" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-23-subsequent-event-" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NotesToFinancialStatementsAbstract" xlink:label="dsgx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VitaDexSolutionsLLCMember" xlink:label="dsgx_VitaDexSolutionsLLCMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventsTextBlock" xlink:label="us-gaap_SubsequentEventsTextBlock" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_SubsequentEventTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_VitaDexSolutionsLLCMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_SubsequentEventsTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-significant-accounting-policies-policies" xlink:href="dsgx-20210131.xsd#statement-significant-accounting-policies-policies" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-significant-accounting-policies-policies" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-significant-accounting-policies-policies" xlink:label="dsgx_statement-statement-significant-accounting-policies-policies" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:label="us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationsPolicy" xlink:label="us-gaap_BusinessCombinationsPolicy" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConsolidationPolicyTextBlock" xlink:label="us-gaap_ConsolidationPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerSharePolicyTextBlock" xlink:label="us-gaap_EarningsPerSharePolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:label="us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:label="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:label="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock" xlink:label="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxPolicyTextBlock" xlink:label="us-gaap_IncomeTaxPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryPolicyTextBlock" xlink:label="us-gaap_InventoryPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeLeasesPolicyTextBlock" xlink:label="us-gaap_LesseeLeasesPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PolicyTextBlockAbstract" xlink:label="us-gaap_PolicyTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PolicyTextBlockAbstract" xlink:label="us-gaap_PolicyTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:label="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xlink:label="us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UseOfEstimates" xlink:label="us-gaap_UseOfEstimates" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-significant-accounting-policies-policies" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PolicyTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PolicyTextBlockAbstract" xlink:to="us-gaap_AccountingPoliciesAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ConsolidationPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_UseOfEstimates" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_InventoryPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_LesseeLeasesPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:type="arc"/>
    <link:presentationArc order="15" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_BusinessCombinationsPolicy" xlink:type="arc"/>
    <link:presentationArc order="16" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_IncomeTaxPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="17" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_EarningsPerSharePolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="18" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-3-acquisitions-tables" xlink:href="dsgx-20210131.xsd#statement-note-3-acquisitions-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-3-acquisitions-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-3-acquisitions-tables" xlink:label="dsgx_statement-statement-note-3-acquisitions-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:label="us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" xlink:label="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-3-acquisitions-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-4-fair-value-measurements-tables" xlink:href="dsgx-20210131.xsd#statement-note-4-fair-value-measurements-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-4-fair-value-measurements-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-4-fair-value-measurements-tables" xlink:label="dsgx_statement-statement-note-4-fair-value-measurements-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock" xlink:label="us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-4-fair-value-measurements-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable-tables" xlink:href="dsgx-20210131.xsd#statement-note-5-trade-accounts-receivable-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-5-trade-accounts-receivable-tables" xlink:label="dsgx_statement-statement-note-5-trade-accounts-receivable-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:label="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xlink:label="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-5-trade-accounts-receivable-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-6-other-receivables-tables" xlink:href="dsgx-20210131.xsd#statement-note-6-other-receivables-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-6-other-receivables-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_OtherReceivablesTableTextBlock" xlink:label="dsgx_OtherReceivablesTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-6-other-receivables-tables" xlink:label="dsgx_statement-statement-note-6-other-receivables-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-6-other-receivables-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="dsgx_OtherReceivablesTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement--note-8-property-and-equipment-tables" xlink:href="dsgx-20210131.xsd#statement--note-8-property-and-equipment-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement--note-8-property-and-equipment-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement--note-8-property-and-equipment-tables" xlink:label="dsgx_statement-statement--note-8-property-and-equipment-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement--note-8-property-and-equipment-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-9-intangible-assets-tables" xlink:href="dsgx-20210131.xsd#statement-note-9-intangible-assets-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-9-intangible-assets-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-9-intangible-assets-tables" xlink:label="dsgx_statement-statement-note-9-intangible-assets-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-9-intangible-assets-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-10-goodwill-tables" xlink:href="dsgx-20210131.xsd#statement-note-10-goodwill-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-10-goodwill-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-10-goodwill-tables" xlink:label="dsgx_statement-statement-note-10-goodwill-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_ScheduleOfCondensedCashFlowStatementTableTextBlock" xlink:label="srt_ScheduleOfCondensedCashFlowStatementTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-10-goodwill-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="srt_ScheduleOfCondensedCashFlowStatementTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-11-accrued-liabilities-tables" xlink:href="dsgx-20210131.xsd#statement-note-11-accrued-liabilities-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-11-accrued-liabilities-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-11-accrued-liabilities-tables" xlink:label="dsgx_statement-statement-note-11-accrued-liabilities-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-11-accrued-liabilities-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-13-leases-tables" xlink:href="dsgx-20210131.xsd#statement-note-13-leases-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-13-leases-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-13-leases-tables" xlink:label="dsgx_statement-statement-note-13-leases-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LeaseCostTableTextBlock" xlink:label="us-gaap_LeaseCostTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-13-leases-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_LeaseCostTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-15-share-capital-tables" xlink:href="dsgx-20210131.xsd#statement-note-15-share-capital-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-15-share-capital-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-15-share-capital-tables" xlink:label="dsgx_statement-statement-note-15-share-capital-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock" xlink:label="us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-15-share-capital-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-16-earnings-per-share-tables" xlink:href="dsgx-20210131.xsd#statement-note-16-earnings-per-share-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-16-earnings-per-share-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-16-earnings-per-share-tables" xlink:label="dsgx_statement-statement-note-16-earnings-per-share-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-16-earnings-per-share-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-tables" xlink:href="dsgx-20210131.xsd#statement-note-17-stockbased-compensation-plans-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock" xlink:label="dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-17-stockbased-compensation-plans-tables" xlink:label="dsgx_statement-statement-note-17-stockbased-compensation-plans-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" xlink:label="us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-17-stockbased-compensation-plans-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-tables" xlink:href="dsgx-20210131.xsd#statement-note-18-income-taxes-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-18-income-taxes-tables" xlink:label="dsgx_statement-statement-note-18-income-taxes-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:label="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:label="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:label="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:label="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock" xlink:label="us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-18-income-taxes-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs-tables" xlink:href="dsgx-20210131.xsd#statement-note-19-contract-balances-performance-obligations-and-contract-costs-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-19-contract-balances-performance-obligations-and-contract-costs-tables" xlink:label="dsgx_statement-statement-note-19-contract-balances-performance-obligations-and-contract-costs-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-19-contract-balances-performance-obligations-and-contract-costs-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-20-other-charges-tables" xlink:href="dsgx-20210131.xsd#statement-note-20-other-charges-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-20-other-charges-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-20-other-charges-tables" xlink:label="dsgx_statement-statement-note-20-other-charges-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock" xlink:label="us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" xlink:label="us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-20-other-charges-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-21-supplemental-cash-flow-information-tables" xlink:href="dsgx-20210131.xsd#statement-note-21-supplemental-cash-flow-information-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-21-supplemental-cash-flow-information-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-21-supplemental-cash-flow-information-tables" xlink:label="dsgx_statement-statement-note-21-supplemental-cash-flow-information-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:label="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-21-supplemental-cash-flow-information-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-22-segmented-information-tables" xlink:href="dsgx-20210131.xsd#statement-note-22-segmented-information-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-22-segmented-information-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-22-segmented-information-tables" xlink:label="dsgx_statement-statement-note-22-segmented-information-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" xlink:label="us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock" xlink:label="us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:label="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-22-segmented-information-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-2-basis-of-presentation-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-2-basis-of-presentation-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-2-basis-of-presentation-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BaseAnnualFeePercent" xlink:label="dsgx_BaseAnnualFeePercent-2" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CashSettledRestrictedShareUnitsVestingPeriod" xlink:label="dsgx_CashSettledRestrictedShareUnitsVestingPeriod-2" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CashsettledRestrictedSharePlanMember" xlink:label="dsgx_CashsettledRestrictedSharePlanMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals" xlink:label="dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals-2" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredShareUnitPlanMember" xlink:label="dsgx_DeferredShareUnitPlanMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DirectorsAndOfficersMember" xlink:label="dsgx_DirectorsAndOfficersMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ExistingTechnologyMember" xlink:label="dsgx_ExistingTechnologyMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="dsgx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_TheAccountingStandardsUpdate201616Member" xlink:label="dsgx_TheAccountingStandardsUpdate201616Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_TitleOfIndividualAxis" xlink:label="srt_TitleOfIndividualAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingStandardsUpdate201409Member" xlink:label="us-gaap_AccountingStandardsUpdate201409Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingStandardsUpdate201602Member" xlink:label="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ComputerEquipmentMember" xlink:label="us-gaap_ComputerEquipmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerAssetNet" xlink:label="us-gaap_ContractWithCustomerAssetNet-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquipmentMember" xlink:label="us-gaap_EquipmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xlink:label="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FurnitureAndFixturesMember" xlink:label="us-gaap_FurnitureAndFixturesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillImpairmentLoss" xlink:label="us-gaap_GoodwillImpairmentLoss-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_CustomerRelationshipsMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="dsgx_ExistingTechnologyMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_TradeNamesMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_NoncompeteAgreementsMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_ComputerEquipmentMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_FurnitureAndFixturesMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_EquipmentMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_EmployeeStockOptionMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_TitleOfIndividualAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_TitleOfIndividualAxis" xlink:to="dsgx_DirectorsAndOfficersMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_PerformanceSharesMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="dsgx_DeferredShareUnitPlanMember" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="dsgx_CashsettledRestrictedSharePlanMember" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_AccountingStandardsUpdate201409Member" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="dsgx_TheAccountingStandardsUpdate201616Member" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_GoodwillImpairmentLoss-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PropertyPlantAndEquipmentUsefulLife-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals-2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1-2" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod-2" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_BaseAnnualFeePercent-2" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CashSettledRestrictedShareUnitsVestingPeriod-2" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerAssetNet-2" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherAssetsNoncurrent-2" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet-2" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit-2" xlink:type="arc"/>
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseLiability-2" xlink:type="arc"/>
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-3-acquisitions-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-3-acquisitions-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-3-acquisitions-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_AljexSoftwareIncMember" xlink:label="dsgx_AljexSoftwareIncMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BesttransportMember" xlink:label="dsgx_BesttransportMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" xlink:label="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets-2" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_KontainersMember" xlink:label="dsgx_KontainersMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="dsgx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_PeoplevoxMember" xlink:label="dsgx_PeoplevoxMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_PinPointMember" xlink:label="dsgx_PinPointMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShipTrackMember" xlink:label="dsgx_ShipTrackMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_StepcomMember" xlink:label="dsgx_StepcomMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_The2021AcquisitionsMember" xlink:label="dsgx_The2021AcquisitionsMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VelocityMailMember" xlink:label="dsgx_VelocityMailMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" xlink:label="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationAcquiredReceivablesFairValue" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesFairValue-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount" xlink:label="us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" xlink:label="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_PeoplevoxMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_KontainersMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_ShipTrackMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_The2021AcquisitionsMember" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_VisualComplianceMember" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_StepcomMember" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_BesttransportMember" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_AljexSoftwareIncMember" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_VelocityMailMember" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_PinPointMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationAcquiredReceivablesFairValue-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets-2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiability-2" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts-2" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual-2" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued-2" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible-2" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-4-fair-value-measurements-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-4-fair-value-measurements-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-4-fair-value-measurements-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DerivativeInstrumentCommonSharesHeldPerShare" xlink:label="dsgx_DerivativeInstrumentCommonSharesHeldPerShare-2" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DerivativeInstrumentSharesOfCommonStockHeld" xlink:label="dsgx_DerivativeInstrumentSharesOfCommonStockHeld-2" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="dsgx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeGainOnDerivative" xlink:label="us-gaap_DerivativeGainOnDerivative-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeStatementLocationAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_DerivativeInstrumentSharesOfCommonStockHeld-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_DerivativeInstrumentCommonSharesHeldPerShare-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DerivativeGainOnDerivative-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-5-trade-accounts-receivable-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="dsgx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UnbilledReceivablesCurrent" xlink:label="us-gaap_UnbilledReceivablesCurrent-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_UnbilledReceivablesCurrent-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-6-other-receivables-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-6-other-receivables-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-6-other-receivables-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_AmountsRecoverableFromFundsHeldInEscrow" xlink:label="dsgx_AmountsRecoverableFromFundsHeldInEscrow-2" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="dsgx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_AmountsRecoverableFromFundsHeldInEscrow-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-7-inventory-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-7-inventory-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-7-inventory-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="dsgx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryValuationReserves" xlink:label="us-gaap_InventoryValuationReserves-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InventoryValuationReserves-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-9-intangible-assets-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-9-intangible-assets-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-9-intangible-assets-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="dsgx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour-2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive-2" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-12-longterm-debt-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-12-longterm-debt-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-12-longterm-debt-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CanadaOrUsPrimeRateBaOrLiborMember" xlink:label="dsgx_CanadaOrUsPrimeRateBaOrLiborMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember" xlink:label="dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="dsgx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_RevolvingOperatingCreditFacilityMember" xlink:label="dsgx_RevolvingOperatingCreditFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_SeniorSecuredCreditFacilityMember" xlink:label="dsgx_SeniorSecuredCreditFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentTerm" xlink:label="us-gaap_DebtInstrumentTerm-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LettersOfCreditOutstandingAmount" xlink:label="us-gaap_LettersOfCreditOutstandingAmount-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCredit" xlink:label="us-gaap_LineOfCredit-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:label="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_CreditFacilityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="dsgx_RevolvingOperatingCreditFacilityMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DebtInstrumentAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="dsgx_SeniorSecuredCreditFacilityMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_VariableRateAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateAxis" xlink:to="dsgx_CanadaOrUsPrimeRateBaOrLiborMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="dsgx_SeniorSecuredCreditFacilityMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DebtInstrumentTerm-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LineOfCredit-2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LettersOfCreditOutstandingAmount-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-13-leases-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-13-leases-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-13-leases-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="dsgx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseRemainingLeaseTerm" xlink:label="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:label="us-gaap_LesseeOperatingLeaseRenewalTerm-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseRenewalTerm-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-14-commitments-contingencies-and-guarantees-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-14-commitments-contingencies-and-guarantees-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-14-commitments-contingencies-and-guarantees-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets" xlink:label="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets-2" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_COREKontainersAndShipTrackMember" xlink:label="dsgx_COREKontainersAndShipTrackMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xlink:label="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized-2" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredShareUnitLiabilityNumberOfCommonShares" xlink:label="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares-2" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized" xlink:label="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized-2" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DerivativeInstrumentSharesOfCommonStockHeld" xlink:label="dsgx_DerivativeInstrumentSharesOfCommonStockHeld-2" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="dsgx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_COREKontainersAndShipTrackMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_DerivativeInstrumentSharesOfCommonStockHeld-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_DeferredShareUnitLiabilityNumberOfCommonShares-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh-2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets-2" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiability-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-15-share-capital-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-15-share-capital-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-15-share-capital-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="dsgx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_OverallotmentOption" xlink:label="dsgx_OverallotmentOption-2" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ProceedsFromIssuanceOfCommonStockNet" xlink:label="dsgx_ProceedsFromIssuanceOfCommonStockNet-2" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShelfProspectusMaximumAmount" xlink:label="dsgx_ShelfProspectusMaximumAmount-2" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShelfProspectusMember" xlink:label="dsgx_ShelfProspectusMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShelfProspectusPeriod" xlink:label="dsgx_ShelfProspectusPeriod-2" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_The2020BaseShelfProspectusMember" xlink:label="dsgx_The2020BaseShelfProspectusMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="us-gaap_ProceedsFromStockOptionsExercised-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SaleOfStockNameOfTransactionDomain" xlink:label="us-gaap_SaleOfStockNameOfTransactionDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharesIssuedPricePerShare" xlink:label="us-gaap_SharesIssuedPricePerShare-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:label="us-gaap_StockIssuedDuringPeriodSharesNewIssues-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueNewIssues" xlink:label="us-gaap_StockIssuedDuringPeriodValueNewIssues-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsidiarySaleOfStockAxis" xlink:label="us-gaap_SubsidiarySaleOfStockAxis" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsidiarySaleOfStockAxis" xlink:to="us-gaap_SaleOfStockNameOfTransactionDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_SubsidiarySaleOfStockAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsidiarySaleOfStockAxis" xlink:to="dsgx_ShelfProspectusMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsidiarySaleOfStockAxis" xlink:to="dsgx_The2020BaseShelfProspectusMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ShelfProspectusPeriod-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ShelfProspectusMaximumAmount-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharesIssuedPricePerShare-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesNewIssues-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_OverallotmentOption-2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueNewIssues-2" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ProceedsFromIssuanceOfCommonStockNet-2" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ProceedsFromStockOptionsExercised-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-16-earnings-per-share-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-16-earnings-per-share-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-16-earnings-per-share-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="dsgx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_PSUsAndRSUsMember" xlink:label="dsgx_PSUsAndRSUsMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_StockOptionsTreasuryStockMethodMember" xlink:label="dsgx_StockOptionsTreasuryStockMethodMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="us-gaap_EmployeeStockOptionMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="dsgx_StockOptionsTreasuryStockMethodMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="dsgx_PSUsAndRSUsMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-17-stockbased-compensation-plans-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CashSettledRestrictedShareUnitsCompensationExpense" xlink:label="dsgx_CashSettledRestrictedShareUnitsCompensationExpense-2" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CashsettledRestrictedShareUnitMember" xlink:label="dsgx_CashsettledRestrictedShareUnitMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredShareUnitPlanMember" xlink:label="dsgx_DeferredShareUnitPlanMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredShareUnitsCompensationExpense" xlink:label="dsgx_DeferredShareUnitsCompensationExpense-2" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredShareUnitsGrantsInPeriod" xlink:label="dsgx_DeferredShareUnitsGrantsInPeriod-2" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredShareUnitsOutstandingNumber" xlink:label="dsgx_DeferredShareUnitsOutstandingNumber-2" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredShareUnitsRedeemedAndSettledInCash" xlink:label="dsgx_DeferredShareUnitsRedeemedAndSettledInCash-2" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="dsgx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShareholderapprovedStockOptionPlanMember" xlink:label="dsgx_ShareholderapprovedStockOptionPlanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent" xlink:label="us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PlanNameAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameAxis" xlink:to="dsgx_ShareholderapprovedStockOptionPlanMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_EmployeeStockOptionMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_PerformanceSharesMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameAxis" xlink:to="dsgx_DeferredShareUnitPlanMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameAxis" xlink:to="dsgx_CashsettledRestrictedShareUnitMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized-2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1-2" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1-2" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross-2" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue-2" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue-2" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue-2" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_DeferredShareUnitsOutstandingNumber-2" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent-2" xlink:type="arc"/>
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_DeferredShareUnitsGrantsInPeriod-2" xlink:type="arc"/>
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_DeferredShareUnitsRedeemedAndSettledInCash-2" xlink:type="arc"/>
    <link:presentationArc order="15" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_DeferredShareUnitsCompensationExpense-2" xlink:type="arc"/>
    <link:presentationArc order="16" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CashSettledRestrictedShareUnitsCompensationExpense-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-18-income-taxes-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_IncomeBeforeTaxesPercent" xlink:label="dsgx_IncomeBeforeTaxesPercent-2" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="dsgx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember" xlink:label="dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:label="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ChangeInAccountingPrincipleMember" xlink:label="us-gaap_ChangeInAccountingPrincipleMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CurrentFederalTaxExpenseBenefit" xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit-n2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:label="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit" xlink:label="us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UndistributedEarningsOfForeignSubsidiaries" xlink:label="us-gaap_UndistributedEarningsOfForeignSubsidiaries-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xlink:label="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:to="us-gaap_ChangeInAccountingPrincipleMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:to="dsgx_VolunatryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInTheUnitedStatesMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_IncomeBeforeTaxesPercent-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateContinuingOperations-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CurrentFederalTaxExpenseBenefit-n2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredFederalIncomeTaxExpenseBenefit-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_UndistributedEarningsOfForeignSubsidiaries-2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LiabilityForUncertainTaxPositionsNoncurrent-2" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate-2" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs-1-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-19-contract-balances-performance-obligations-and-contract-costs-1-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs-1-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="dsgx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CapitalizedContractCostAmortization" xlink:label="us-gaap_CapitalizedContractCostAmortization-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CapitalizedContractCostNet" xlink:label="us-gaap_CapitalizedContractCostNet-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CapitalizedContractCostNet-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CapitalizedContractCostAmortization-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs-2-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-19-contract-balances-performance-obligations-and-contract-costs-2-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs-2-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="dsgx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="us-gaap_RevenueRemainingPerformanceObligation-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligation-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationPercentage-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-20-other-charges-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-20-other-charges-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-20-other-charges-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_Fiscal2021RestructuringPlanMember" xlink:label="dsgx_Fiscal2021RestructuringPlanMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="dsgx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1" xlink:label="us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringCharges" xlink:label="us-gaap_RestructuringCharges-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringPlanAxis" xlink:label="us-gaap_RestructuringPlanAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringPlanDomain" xlink:label="us-gaap_RestructuringPlanDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringPlanAxis" xlink:to="us-gaap_RestructuringPlanDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_RestructuringPlanAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringPlanAxis" xlink:to="dsgx_Fiscal2021RestructuringPlanMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RestructuringCharges-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-22-segmented-information-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-22-segmented-information-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-22-segmented-information-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="dsgx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NumberOfReportableSegments" xlink:label="us-gaap_NumberOfReportableSegments-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NumberOfReportableSegments-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-23-subsequent-event-details-textual" xlink:href="dsgx-20210131.xsd#statement-note-23-subsequent-event-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-23-subsequent-event-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NoteToFinancialStatementDetailsTextual" xlink:label="dsgx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VitaDexSolutionsLLCMember" xlink:label="dsgx_VitaDexSolutionsLLCMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_SubsequentEventTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_VitaDexSolutionsLLCMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details-parentheticals" xlink:href="dsgx-20210131.xsd#statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details-parentheticals" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details-parentheticals" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_AljexSoftwareIncMember" xlink:label="dsgx_AljexSoftwareIncMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BesttransportMember" xlink:label="dsgx_BesttransportMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_KontainersMember" xlink:label="dsgx_KontainersMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_PeoplevoxMember" xlink:label="dsgx_PeoplevoxMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_PinPointMember" xlink:label="dsgx_PinPointMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShipTrackMember" xlink:label="dsgx_ShipTrackMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_StepcomMember" xlink:label="dsgx_StepcomMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VelocityMailMember" xlink:label="dsgx_VelocityMailMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAcquiredFromAcquisition" xlink:label="us-gaap_CashAcquiredFromAcquisition" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details-parentheticals" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_PeoplevoxMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_KontainersMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_ShipTrackMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_VisualComplianceMember" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_StepcomMember" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_BesttransportMember" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_AljexSoftwareIncMember" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_VelocityMailMember" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_PinPointMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CashAcquiredFromAcquisition" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-3-acquisitions-acquired-intangible-assets-useful-lives-details" xlink:href="dsgx-20210131.xsd#statement-note-3-acquisitions-acquired-intangible-assets-useful-lives-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-3-acquisitions-acquired-intangible-assets-useful-lives-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_AljexSoftwareIncMember" xlink:label="dsgx_AljexSoftwareIncMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BesttransportMember" xlink:label="dsgx_BesttransportMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ExistingTechnologyMember" xlink:label="dsgx_ExistingTechnologyMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_KontainersMember" xlink:label="dsgx_KontainersMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_PeoplevoxMember" xlink:label="dsgx_PeoplevoxMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_PinPointMember" xlink:label="dsgx_PinPointMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShipTrackMember" xlink:label="dsgx_ShipTrackMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_StepcomMember" xlink:label="dsgx_StepcomMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VelocityMailMember" xlink:label="dsgx_VelocityMailMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-3-acquisitions-acquired-intangible-assets-useful-lives-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_CustomerRelationshipsMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_PeoplevoxMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_KontainersMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_ShipTrackMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_VisualComplianceMember" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_StepcomMember" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_BesttransportMember" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_AljexSoftwareIncMember" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_VelocityMailMember" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_PinPointMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="dsgx_ExistingTechnologyMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_TradeNamesMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_NoncompeteAgreementsMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable-provision-for-credit-losses-details" xlink:href="dsgx-20210131.xsd#statement-note-5-trade-accounts-receivable-provision-for-credit-losses-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable-provision-for-credit-losses-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange" xlink:label="dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange-1" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-5-trade-accounts-receivable-provision-for-credit-losses-details" xlink:label="dsgx_statement-statement-note-5-trade-accounts-receivable-provision-for-credit-losses-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="us-gaap_ProvisionForDoubtfulAccounts" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-5-trade-accounts-receivable-provision-for-credit-losses-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent-4" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ProvisionForDoubtfulAccounts" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs-n8" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange-1" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent-5" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-13-leases-components-of-operating-lease-expense-details" xlink:href="dsgx-20210131.xsd#statement-note-13-leases-components-of-operating-lease-expense-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-13-leases-components-of-operating-lease-expense-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LeaseCost" xlink:label="us-gaap_LeaseCost-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseCost" xlink:label="us-gaap_OperatingLeaseCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeasePayments" xlink:label="us-gaap_OperatingLeasePayments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShortTermLeaseCost" xlink:label="us-gaap_ShortTermLeaseCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-13-leases-components-of-operating-lease-expense-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseCost" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShortTermLeaseCost" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LeaseCost-3" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeasePayments" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-13-leases-maturities-of-operating-lease-liabilities-details" xlink:href="dsgx-20210131.xsd#statement-note-13-leases-maturities-of-operating-lease-liabilities-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-13-leases-maturities-of-operating-lease-liabilities-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-13-leases-maturities-of-operating-lease-liabilities-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths-1" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo-1" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree-1" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour-1" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive-1" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive-1" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue-3" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount-n8" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseLiability" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent-1" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent-1" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-assumptions-used-in-blackscholes-model-for-each-grant-details" xlink:href="dsgx-20210131.xsd#statement-note-17-stockbased-compensation-plans-assumptions-used-in-blackscholes-model-for-each-grant-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-assumptions-used-in-blackscholes-model-for-each-grant-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-17-stockbased-compensation-plans-assumptions-used-in-blackscholes-model-for-each-grant-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-summary-of-option-activity-details" xlink:href="dsgx-20210131.xsd#statement-note-17-stockbased-compensation-plans-summary-of-option-activity-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-summary-of-option-activity-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised-n8" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-option-activity-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-4" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice-4" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised-n8" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod-n8" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-5" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice-5" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:type="arc"/>
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:type="arc"/>
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:type="arc"/>
    <link:presentationArc order="15" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:type="arc"/>
    <link:presentationArc order="16" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:type="arc"/>
    <link:presentationArc order="17" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:type="arc"/>
    <link:presentationArc order="18" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:type="arc"/>
    <link:presentationArc order="19" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-summary-of-nonvested-share-details" xlink:href="dsgx-20210131.xsd#statement-note-17-stockbased-compensation-plans-summary-of-nonvested-share-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-summary-of-nonvested-share-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShareholderapprovedStockOptionPlanMember" xlink:label="dsgx_ShareholderapprovedStockOptionPlanMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares-n9" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-nonvested-share-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PlanNameAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameAxis" xlink:to="dsgx_ShareholderapprovedStockOptionPlanMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares-4" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue-4" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares-n9" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares-n8" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares-5" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue-5" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-summary-of-performance-share-units-activity-details" xlink:href="dsgx-20210131.xsd#statement-note-17-stockbased-compensation-plans-summary-of-performance-share-units-activity-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-summary-of-performance-share-units-activity-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-performance-share-units-activity-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_PerformanceSharesMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber-4" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-4" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber-5" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-5" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:type="arc"/>
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:type="arc"/>
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" xlink:type="arc"/>
    <link:presentationArc order="15" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:presentationArc order="16" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" xlink:type="arc"/>
    <link:presentationArc order="17" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-summary-of-restricted-share-units-activity-details" xlink:href="dsgx-20210131.xsd#statement-note-17-stockbased-compensation-plans-summary-of-restricted-share-units-activity-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-summary-of-restricted-share-units-activity-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" xlink:label="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-restricted-share-units-activity-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber-4" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-4" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber-5" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-5" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable" xlink:type="arc"/>
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm" xlink:type="arc"/>
    <link:presentationArc order="15" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-summary-of-crsu-plan-activity-details" xlink:href="dsgx-20210131.xsd#statement-note-17-stockbased-compensation-plans-summary-of-crsu-plan-activity-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-summary-of-crsu-plan-activity-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CRSUAwardNonvestedNumber" xlink:label="dsgx_CRSUAwardNonvestedNumber" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CRSUAwardNonvestedWeightedAverageContractualLife" xlink:label="dsgx_CRSUAwardNonvestedWeightedAverageContractualLife" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CRSUAwardsForfeitedInPeriod" xlink:label="dsgx_CRSUAwardsForfeitedInPeriod-n8" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CRSUAwardsGrantsInPeriod" xlink:label="dsgx_CRSUAwardsGrantsInPeriod" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CRSUAwardsOutstandingNumber" xlink:label="dsgx_CRSUAwardsOutstandingNumber-4" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CRSUAwardsOutstandingNumber" xlink:label="dsgx_CRSUAwardsOutstandingNumber-5" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CRSUAwardsVestedAndSettledInCash" xlink:label="dsgx_CRSUAwardsVestedAndSettledInCash-n8" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CRSUAwardsWeightedAverageContractualLife" xlink:label="dsgx_CRSUAwardsWeightedAverageContractualLife" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-17-stockbased-compensation-plans-summary-of-crsu-plan-activity-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CRSUAwardsOutstandingNumber-4" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CRSUAwardsWeightedAverageContractualLife" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CRSUAwardsGrantsInPeriod" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CRSUAwardsVestedAndSettledInCash-n8" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CRSUAwardsForfeitedInPeriod-n8" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CRSUAwardsOutstandingNumber-5" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CRSUAwardNonvestedNumber" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_CRSUAwardNonvestedWeightedAverageContractualLife" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-income-tax-loss-carryforwards-expiration-dates-details" xlink:href="dsgx-20210131.xsd#statement-note-18-income-taxes-income-tax-loss-carryforwards-expiration-dates-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-income-tax-loss-carryforwards-expiration-dates-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_AfterTaxYear2026Member" xlink:label="dsgx_AfterTaxYear2026Member" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_AsiaPacificIncomeTaxAuthorityMember" xlink:label="dsgx_AsiaPacificIncomeTaxAuthorityMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_EmeaIncomeTaxAuthorityMember" xlink:label="dsgx_EmeaIncomeTaxAuthorityMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_TaxYear2022Member" xlink:label="dsgx_TaxYear2022Member" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_TaxYear2023Member" xlink:label="dsgx_TaxYear2023Member" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_TaxYear2024Member" xlink:label="dsgx_TaxYear2024Member" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_TaxYear2025Member" xlink:label="dsgx_TaxYear2025Member" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_TaxYear2026Member" xlink:label="dsgx_TaxYear2026Member" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CanadaRevenueAgencyMember" xlink:label="us-gaap_CanadaRevenueAgencyMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DomesticCountryMember" xlink:label="us-gaap_DomesticCountryMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCountryMember" xlink:label="us-gaap_ForeignCountryMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityNameAxis" xlink:label="us-gaap_IncomeTaxAuthorityNameAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityNameDomain" xlink:label="us-gaap_IncomeTaxAuthorityNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InternalRevenueServiceIRSMember" xlink:label="us-gaap_InternalRevenueServiceIRSMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLossCarryforwards" xlink:label="us-gaap_OperatingLossCarryforwards" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TaxPeriodAxis" xlink:label="us-gaap_TaxPeriodAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TaxPeriodDomain" xlink:label="us-gaap_TaxPeriodDomain" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-18-income-taxes-income-tax-loss-carryforwards-expiration-dates-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityNameAxis" xlink:to="us-gaap_IncomeTaxAuthorityNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxPeriodAxis" xlink:to="us-gaap_TaxPeriodDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeTaxAuthorityNameAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityNameAxis" xlink:to="us-gaap_CanadaRevenueAgencyMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeTaxAuthorityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_ForeignCountryMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_TaxPeriodAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxPeriodAxis" xlink:to="dsgx_TaxYear2022Member" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_DomesticCountryMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityNameAxis" xlink:to="us-gaap_InternalRevenueServiceIRSMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityNameAxis" xlink:to="dsgx_EmeaIncomeTaxAuthorityMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityNameAxis" xlink:to="dsgx_AsiaPacificIncomeTaxAuthorityMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxPeriodAxis" xlink:to="dsgx_TaxYear2023Member" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxPeriodAxis" xlink:to="dsgx_TaxYear2024Member" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxPeriodAxis" xlink:to="dsgx_TaxYear2025Member" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxPeriodAxis" xlink:to="dsgx_TaxYear2026Member" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxPeriodAxis" xlink:to="dsgx_AfterTaxYear2026Member" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLossCarryforwards" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs-changes-in-deferred-revenue-and-contract-assets-details" xlink:href="dsgx-20210131.xsd#statement-note-19-contract-balances-performance-obligations-and-contract-costs-changes-in-deferred-revenue-and-contract-assets-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs-changes-in-deferred-revenue-and-contract-assets-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange" xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange-2" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet" xlink:label="dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606" xlink:label="dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606-4" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange" xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue" xlink:label="dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-19-contract-balances-performance-obligations-and-contract-costs-changes-in-deferred-revenue-and-contract-assets-details" xlink:label="dsgx_statement-statement-note-19-contract-balances-performance-obligations-and-contract-costs-changes-in-deferred-revenue-and-contract-assets-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerAssetNet" xlink:label="us-gaap_ContractWithCustomerAssetNet-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerAssetReclassifiedToReceivable" xlink:label="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-19-contract-balances-performance-obligations-and-contract-costs-changes-in-deferred-revenue-and-contract-assets-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiability-4" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiability-5" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent-2" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606-4" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable-n8" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange-2" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerAssetNet-5" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-20-other-charges-restructuring-provision-details" xlink:href="dsgx-20210131.xsd#statement-note-20-other-charges-restructuring-provision-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-20-other-charges-restructuring-provision-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-20-other-charges-restructuring-provision-details" xlink:label="dsgx_statement-statement-note-20-other-charges-restructuring-provision-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeSeveranceMember" xlink:label="us-gaap_EmployeeSeveranceMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FacilityClosingMember" xlink:label="us-gaap_FacilityClosingMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsForRestructuring" xlink:label="us-gaap_PaymentsForRestructuring-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringCostAndReserveAxis" xlink:label="us-gaap_RestructuringCostAndReserveAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringReserve" xlink:label="us-gaap_RestructuringReserve-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringReserve" xlink:label="us-gaap_RestructuringReserve-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringReserveAccrualAdjustment1" xlink:label="us-gaap_RestructuringReserveAccrualAdjustment1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringReserveTranslationAdjustment" xlink:label="us-gaap_RestructuringReserveTranslationAdjustment-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfRestructuringDomain" xlink:label="us-gaap_TypeOfRestructuringDomain" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-20-other-charges-restructuring-provision-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringCostAndReserveAxis" xlink:to="us-gaap_TypeOfRestructuringDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_RestructuringCostAndReserveAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringCostAndReserveAxis" xlink:to="us-gaap_EmployeeSeveranceMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringCostAndReserveAxis" xlink:to="us-gaap_FacilityClosingMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RestructuringReserve-4" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RestructuringReserveAccrualAdjustment1" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PaymentsForRestructuring-n8" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RestructuringReserveTranslationAdjustment-n8" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RestructuringReserve-5" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-consolidated-statements-of-cash-flows" xlink:href="dsgx-20210131.xsd#statement-consolidated-statements-of-cash-flows" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-consolidated-statements-of-cash-flows" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredTaxCharges" xlink:label="dsgx_DeferredTaxCharges" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Depreciation" xlink:label="us-gaap_Depreciation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="us-gaap_IncomeTaxesPaidNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInOperatingCapital" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapital-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InterestPaidNet" xlink:label="us-gaap_InterestPaidNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNoncashIncomeExpense" xlink:label="us-gaap_OtherNoncashIncomeExpense-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsOfDebtIssuanceCosts" xlink:label="us-gaap_PaymentsOfDebtIssuanceCosts-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:label="us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromLinesOfCredit" xlink:label="us-gaap_ProceedsFromLinesOfCredit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RepaymentsOfDebt" xlink:label="us-gaap_RepaymentsOfDebt-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="us-gaap_StatementOfCashFlowsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_Depreciation" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AmortizationOfIntangibleAssets" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_ShareBasedCompensation-1" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_OtherNoncashIncomeExpense-n8" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit-2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="dsgx_DeferredTaxCharges" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapital-n8" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities-3" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment-n8" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired-n8" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities-3" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_ProceedsFromLinesOfCredit" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_RepaymentsOfDebt-n8" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_PaymentsOfDebtIssuanceCosts-n8" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities-n8" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities-3" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect-3" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations-4" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations-5" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SupplementalCashFlowInformationAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_InterestPaidNet" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_IncomeTaxesPaidNet" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-options-outstanding-and-options-exercisable-details" xlink:href="dsgx-20210131.xsd#statement-note-17-stockbased-compensation-plans-options-outstanding-and-options-exercisable-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-options-outstanding-and-options-exercisable-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_Range1Member" xlink:label="dsgx_Range1Member" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_Range2Member" xlink:label="dsgx_Range2Member" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_Range3Member" xlink:label="dsgx_Range3Member" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_Range4Member" xlink:label="dsgx_Range4Member" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" xlink:label="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1" xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" xlink:label="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-17-stockbased-compensation-plans-options-outstanding-and-options-exercisable-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xlink:to="dsgx_Range1Member" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xlink:to="dsgx_Range2Member" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xlink:to="dsgx_Range3Member" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis" xlink:to="dsgx_Range4Member" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details" xlink:href="dsgx-20210131.xsd#statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_AljexSoftwareIncMember" xlink:label="dsgx_AljexSoftwareIncMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BesttransportMember" xlink:label="dsgx_BesttransportMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" xlink:label="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BusinessCombinationConsiderationTransferredPayable" xlink:label="dsgx_BusinessCombinationConsiderationTransferredPayable" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation-n1" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets-2" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet" xlink:label="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet-n8" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ExistingTechnologyMember" xlink:label="dsgx_ExistingTechnologyMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_KontainersMember" xlink:label="dsgx_KontainersMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_PeoplevoxMember" xlink:label="dsgx_PeoplevoxMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_PinPointMember" xlink:label="dsgx_PinPointMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShipTrackMember" xlink:label="dsgx_ShipTrackMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_StepcomMember" xlink:label="dsgx_StepcomMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_The2019AcquisitionsMember" xlink:label="dsgx_The2019AcquisitionsMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_The2020AcquisitionsMember" xlink:label="dsgx_The2020AcquisitionsMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_The2021AcquisitionsMember" xlink:label="dsgx_The2021AcquisitionsMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VelocityMailMember" xlink:label="dsgx_VelocityMailMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_PeoplevoxMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_KontainersMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_ShipTrackMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_The2021AcquisitionsMember" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_VisualComplianceMember" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_StepcomMember" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_BesttransportMember" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_The2020AcquisitionsMember" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_AljexSoftwareIncMember" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_VelocityMailMember" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_PinPointMember" xlink:type="arc"/>
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_The2019AcquisitionsMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_CustomerRelationshipsMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="dsgx_ExistingTechnologyMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_TradeNamesMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_NoncompeteAgreementsMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_BusinessCombinationConsiderationTransferredPayable" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightofuseAssets-2" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities-n8" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue-n8" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_BusinessCombinationRecognizedIdentifiableAssetAcquiredAndLiabilityAssumedOperatingLeaseObligation-n1" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities-n8" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities-n8" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet-n8" xlink:type="arc"/>
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:type="arc"/>
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_Goodwill-2" xlink:type="arc"/>
    <link:presentationArc order="15" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired-1" xlink:type="arc"/>
    <link:presentationArc order="16" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable" xlink:type="arc"/>
    <link:presentationArc order="17" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:type="arc"/>
    <link:presentationArc order="18" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:type="arc"/>
    <link:presentationArc order="19" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-3-acquisitions-pro-forma-results-of-operations-details" xlink:href="dsgx-20210131.xsd#statement-note-3-acquisitions-pro-forma-results-of-operations-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-3-acquisitions-pro-forma-results-of-operations-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-3-acquisitions-pro-forma-results-of-operations-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionsProFormaRevenue-1" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss-1" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EarningsPerShareAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic-1" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted-1" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-4-fair-value-measurements-derivative-instruments-at-fair-value-details" xlink:href="dsgx-20210131.xsd#statement-note-4-fair-value-measurements-derivative-instruments-at-fair-value-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-4-fair-value-measurements-derivative-instruments-at-fair-value-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeAssets" xlink:label="us-gaap_DerivativeAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DesignatedAsHedgingInstrumentMember" xlink:label="us-gaap_DesignatedAsHedgingInstrumentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationAxis" xlink:label="us-gaap_HedgingDesignationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationDomain" xlink:label="us-gaap_HedgingDesignationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NondesignatedMember" xlink:label="us-gaap_NondesignatedMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-4-fair-value-measurements-derivative-instruments-at-fair-value-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_HedgingDesignationAxis" xlink:to="us-gaap_HedgingDesignationDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_HedgingDesignationAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_HedgingDesignationAxis" xlink:to="us-gaap_DesignatedAsHedgingInstrumentMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_HedgingDesignationAxis" xlink:to="us-gaap_NondesignatedMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DerivativeAssets" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable-trade-receivables-details" xlink:href="dsgx-20210131.xsd#statement-note-5-trade-accounts-receivable-trade-receivables-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable-trade-receivables-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-5-trade-accounts-receivable-trade-receivables-details" xlink:label="dsgx_statement-statement-note-5-trade-accounts-receivable-trade-receivables-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsReceivableGrossCurrent" xlink:label="us-gaap_AccountsReceivableGrossCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-5-trade-accounts-receivable-trade-receivables-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AccountsReceivableGrossCurrent" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent-n8" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AccountsReceivableNetCurrent-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-6-other-receivables-other-receivables-details" xlink:href="dsgx-20210131.xsd#statement-note-6-other-receivables-other-receivables-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-6-other-receivables-other-receivables-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions" xlink:label="dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-6-other-receivables-other-receivables-details" xlink:label="dsgx_statement-statement-note-6-other-receivables-other-receivables-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherAssetsCurrent" xlink:label="us-gaap_OtherAssetsCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherReceivablesNetCurrent" xlink:label="us-gaap_OtherReceivablesNetCurrent-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-6-other-receivables-other-receivables-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherAssetsCurrent" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherReceivablesNetCurrent-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-10-goodwill-goodwill-details" xlink:href="dsgx-20210131.xsd#statement-note-10-goodwill-goodwill-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-10-goodwill-goodwill-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_BesttransportMember" xlink:label="dsgx_BesttransportMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:label="dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_KontainersMember" xlink:label="dsgx_KontainersMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_PeoplevoxMember" xlink:label="dsgx_PeoplevoxMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ShipTrackMember" xlink:label="dsgx_ShipTrackMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_StepcomMember" xlink:label="dsgx_StepcomMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_VisualComplianceMember" xlink:label="dsgx_VisualComplianceMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-10-goodwill-goodwill-details" xlink:label="dsgx_statement-statement-note-10-goodwill-goodwill-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillAcquiredDuringPeriod" xlink:label="us-gaap_GoodwillAcquiredDuringPeriod-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments" xlink:label="us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-10-goodwill-goodwill-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_VisualComplianceMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_CoreTransportTechnologiesNzLimitedMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_StepcomMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_BesttransportMember" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_PeoplevoxMember" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_KontainersMember" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="dsgx_ShipTrackMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_Goodwill-4" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_GoodwillAcquiredDuringPeriod-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_Goodwill-5" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-11-accrued-liabilities-accrued-liabilities-details" xlink:href="dsgx-20210131.xsd#statement-note-11-accrued-liabilities-accrued-liabilities-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-11-accrued-liabilities-accrued-liabilities-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-11-accrued-liabilities-accrued-liabilities-details" xlink:label="dsgx_statement-statement-note-11-accrued-liabilities-accrued-liabilities-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedProfessionalFeesCurrent" xlink:label="us-gaap_AccruedProfessionalFeesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-11-accrued-liabilities-accrued-liabilities-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AccruedProfessionalFeesCurrent" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherAccruedLiabilitiesCurrent" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AccruedLiabilitiesCurrent-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-15-share-capital-common-shares-outstanding-details" xlink:href="dsgx-20210131.xsd#statement-note-15-share-capital-common-shares-outstanding-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-15-share-capital-common-shares-outstanding-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised" xlink:label="dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" xlink:label="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:label="us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-15-share-capital-common-shares-outstanding-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CommonStockSharesOutstanding-4" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CommonStockSharesOutstanding-5" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-16-earnings-per-share-computation-of-basic-and-diluted-earnings-per-share-details" xlink:href="dsgx-20210131.xsd#statement-note-16-earnings-per-share-computation-of-basic-and-diluted-earnings-per-share-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-16-earnings-per-share-computation-of-basic-and-diluted-earnings-per-share-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-16-earnings-per-share-computation-of-basic-and-diluted-earnings-per-share-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_EmployeeStockOptionMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EarningsPerShareAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareBasic" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareDiluted" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-total-estimated-stockbased-compensation-expense-details" xlink:href="dsgx-20210131.xsd#statement-note-17-stockbased-compensation-plans-total-estimated-stockbased-compensation-expense-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-total-estimated-stockbased-compensation-expense-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CostOfSalesMember" xlink:label="us-gaap_CostOfSalesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ResearchAndDevelopmentExpenseMember" xlink:label="us-gaap_ResearchAndDevelopmentExpenseMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SellingAndMarketingExpenseMember" xlink:label="us-gaap_SellingAndMarketingExpenseMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-17-stockbased-compensation-plans-total-estimated-stockbased-compensation-expense-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeStatementLocationAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_CostOfSalesMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_SellingAndMarketingExpenseMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_ResearchAndDevelopmentExpenseMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-provision-recovery-for-income-taxes-from-the-expected-provision-at-the-statutory-rates-details" xlink:href="dsgx-20210131.xsd#statement-note-18-income-taxes-provision-recovery-for-income-taxes-from-the-expected-provision-at-the-statutory-rates-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-provision-recovery-for-income-taxes-from-the-expected-provision-at-the-statutory-rates-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions" xlink:label="dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions-2" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate" xlink:label="us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:label="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationOtherAdjustments" xlink:label="us-gaap_IncomeTaxReconciliationOtherAdjustments-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes" xlink:label="us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" 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="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential-2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate-2" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes-2" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions-2" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance-2" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost-2" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationOtherAdjustments-2" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefit-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-reconciliation-of-the-total-estimated-liability-associated-with-uncertain-tax-provisions-details" xlink:href="dsgx-20210131.xsd#statement-note-18-income-taxes-reconciliation-of-the-total-estimated-liability-associated-with-uncertain-tax-provisions-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-reconciliation-of-the-total-estimated-liability-associated-with-uncertain-tax-provisions-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="us-gaap_UnrecognizedTaxBenefits-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="us-gaap_UnrecognizedTaxBenefits-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:label="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations-n8" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-18-income-taxes-reconciliation-of-the-total-estimated-liability-associated-with-uncertain-tax-provisions-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_UnrecognizedTaxBenefits-4" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations-n8" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_UnrecognizedTaxBenefits-5" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-20-other-charges-other-charges-included-in-consolidated-statements-of-operations-details" xlink:href="dsgx-20210131.xsd#statement-note-20-other-charges-other-charges-included-in-consolidated-statements-of-operations-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-20-other-charges-other-charges-included-in-consolidated-statements-of-operations-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNonoperatingExpense" xlink:label="us-gaap_OtherNonoperatingExpense-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringCharges" xlink:label="us-gaap_RestructuringCharges" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-20-other-charges-other-charges-included-in-consolidated-statements-of-operations-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RestructuringCharges" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherNonoperatingExpense-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-21-supplemental-cash-flow-information-cash-flow-changes-in-operating-asset-and-liabilities-details" xlink:href="dsgx-20210131.xsd#statement-note-21-supplemental-cash-flow-information-cash-flow-changes-in-operating-asset-and-liabilities-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-21-supplemental-cash-flow-information-cash-flow-changes-in-operating-asset-and-liabilities-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_IncreaseDecreaseInOperatingLeaseLiabilities" xlink:label="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities-1" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInIncomeTaxes" xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxes-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInOperatingCapital" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapital-n10" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInOtherReceivables" xlink:label="us-gaap_IncreaseDecreaseInOtherReceivables-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets-n9" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-21-supplemental-cash-flow-information-cash-flow-changes-in-operating-asset-and-liabilities-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable-n8" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncreaseDecreaseInOtherReceivables-n8" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets-n9" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncreaseDecreaseInInventories-n8" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable-1" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncreaseDecreaseInIncomeTaxes-1" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_IncreaseDecreaseInOperatingLeaseLiabilities-1" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2009/role/negatedTotalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapital-n10" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-consolidated-balance-sheets" xlink:href="dsgx-20210131.xsd#statement-consolidated-balance-sheets" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-consolidated-balance-sheets" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsReceivableNetAbstract" xlink:label="us-gaap_AccountsReceivableNetAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedIncomeTaxesCurrent" xlink:label="us-gaap_AccruedIncomeTaxesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedIncomeTaxesNoncurrent" xlink:label="us-gaap_AccruedIncomeTaxesNoncurrent-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="us-gaap_AssetsCurrentAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredRevenueNoncurrent" xlink:label="us-gaap_DeferredRevenueNoncurrent-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherReceivablesNetCurrent" xlink:label="us-gaap_OtherReceivablesNetCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="us-gaap_StockholdersEquityAbstract" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AssetsCurrentAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AccountsReceivableNetAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_AccountsReceivableNetCurrent" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_OtherReceivablesNetCurrent" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_InventoryNet" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_AssetsCurrent-3" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_OtherAssetsNoncurrent" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_DeferredIncomeTaxAssetsNet-1" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_Goodwill" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountsReceivableNetAbstract" xlink:to="us-gaap_Assets-3" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LiabilitiesCurrentAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_AccountsPayableCurrent" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_AccruedLiabilitiesCurrent" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_AccruedIncomeTaxesCurrent" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LiabilitiesCurrent-3" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LongTermDebtNoncurrent" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent-2" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_DeferredRevenueNoncurrent-2" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_AccruedIncomeTaxesNoncurrent-2" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_Liabilities-3" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_CommitmentsAndContingencies" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquityAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_CommonStockValue" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_AdditionalPaidInCapitalCommonStock" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquity-3" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-consolidated-statements-of-operations-" xlink:href="dsgx-20210131.xsd#statement-consolidated-statements-of-operations-" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-consolidated-statements-of-operations-" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CostsAndExpensesAbstract" xlink:label="us-gaap_CostsAndExpensesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="us-gaap_GeneralAndAdministrativeExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementAbstract" xlink:label="us-gaap_IncomeStatementAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InvestmentIncomeNet" xlink:label="us-gaap_InvestmentIncomeNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingExpenses" xlink:label="us-gaap_OperatingExpenses-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNonoperatingExpense" xlink:label="us-gaap_OtherNonoperatingExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="us-gaap_ResearchAndDevelopmentExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SellingAndMarketingExpense" xlink:label="us-gaap_SellingAndMarketingExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CostOfGoodsAndServicesSold" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_GrossProfit-3" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CostsAndExpensesAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_SellingAndMarketingExpense" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_ResearchAndDevelopmentExpense" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_GeneralAndAdministrativeExpense" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_OtherNonoperatingExpense" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_AmortizationOfIntangibleAssets" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_OperatingExpenses-3" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_OperatingIncomeLoss" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_InterestExpense-n8" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_InvestmentIncomeNet" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments-3" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit-1" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="us-gaap_IncomeTaxExpenseBenefit-3" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="us-gaap_NetIncomeLoss-3" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EarningsPerShareAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareBasic" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareDiluted" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-8-property-and-equipment-property-and-equipment-details" xlink:href="dsgx-20210131.xsd#statement-note-8-property-and-equipment-property-and-equipment-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-8-property-and-equipment-property-and-equipment-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_EquipmentInstalledWithCustomersMember" xlink:label="dsgx_EquipmentInstalledWithCustomersMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetUnderConstructionMember" xlink:label="us-gaap_AssetUnderConstructionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ComputerEquipmentMember" xlink:label="us-gaap_ComputerEquipmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FurnitureAndFixturesMember" xlink:label="us-gaap_FurnitureAndFixturesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LeaseholdImprovementsMember" xlink:label="us-gaap_LeaseholdImprovementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-8-property-and-equipment-property-and-equipment-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_ComputerEquipmentMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_FurnitureAndFixturesMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_LeaseholdImprovementsMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="dsgx_EquipmentInstalledWithCustomersMember" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_AssetUnderConstructionMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PropertyPlantAndEquipmentNet-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-9-intangible-assets-intangible-assets-details" xlink:href="dsgx-20210131.xsd#statement-note-9-intangible-assets-intangible-assets-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-9-intangible-assets-intangible-assets-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_statement-statement-note-9-intangible-assets-intangible-assets-details" xlink:label="dsgx_statement-statement-note-9-intangible-assets-intangible-assets-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DevelopedTechnologyRightsMember" xlink:label="us-gaap_DevelopedTechnologyRightsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-9-intangible-assets-intangible-assets-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_CustomerRelationshipsMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_DevelopedTechnologyRightsMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_TradeNamesMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_NoncompeteAgreementsMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-income-loss-before-income-taxes-earned-by-tax-jurisdictions-details" xlink:href="dsgx-20210131.xsd#statement-note-18-income-taxes-income-loss-before-income-taxes-earned-by-tax-jurisdictions-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-income-loss-before-income-taxes-earned-by-tax-jurisdictions-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd#country_CA" xlink:label="country_CA" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd#country_US" xlink:label="country_US" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_OtherCountriesMember" xlink:label="dsgx_OtherCountriesMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-18-income-taxes-income-loss-before-income-taxes-earned-by-tax-jurisdictions-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeTaxAuthorityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="country_CA" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="country_US" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="dsgx_OtherCountriesMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-income-tax-expense-recovery-incurred-by-jurisdictions-details" xlink:href="dsgx-20210131.xsd#statement-note-18-income-taxes-income-tax-expense-recovery-incurred-by-jurisdictions-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-income-tax-expense-recovery-incurred-by-jurisdictions-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd#country_CA" xlink:label="country_CA" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd#country_US" xlink:label="country_US" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_OtherCountriesMember" xlink:label="dsgx_OtherCountriesMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-18-income-taxes-income-tax-expense-recovery-incurred-by-jurisdictions-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeTaxAuthorityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="country_CA" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="country_US" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="dsgx_OtherCountriesMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefit-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-components-of-deferred-income-tax-assets-and-liabilities-details" xlink:href="dsgx-20210131.xsd#statement-note-18-income-taxes-components-of-deferred-income-tax-assets-and-liabilities-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-18-income-taxes-components-of-deferred-income-tax-assets-and-liabilities-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredTaxAssetsCorporateMinimumTaxes" xlink:label="dsgx_DeferredTaxAssetsCorporateMinimumTaxes" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredTaxAssetsLiabilitesNet1" xlink:label="dsgx_DeferredTaxAssetsLiabilitesNet1-3" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_DeferredTaxAssetsNetBeforeValuationAllowance" xlink:label="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance-3" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilities" xlink:label="us-gaap_DeferredIncomeTaxLiabilities-n10" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsGross" xlink:label="us-gaap_DeferredTaxAssetsGross-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:label="us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:label="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxLiabilitiesOther" xlink:label="us-gaap_DeferredTaxLiabilitiesOther-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-18-income-taxes-components-of-deferred-income-tax-assets-and-liabilities-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_DeferredTaxAssetsCorporateMinimumTaxes" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsGross-3" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets-n8" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment-n8" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxLiabilitiesOther-n8" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2009/role/negatedTotalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredIncomeTaxLiabilities-n10" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_DeferredTaxAssetsNetBeforeValuationAllowance-3" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsValuationAllowance-n8" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="dsgx_DeferredTaxAssetsLiabilitesNet1-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-22-segmented-information-segmented-revenue-by-geographical-location-of-customer-details" xlink:href="dsgx-20210131.xsd#statement-note-22-segmented-information-segmented-revenue-by-geographical-location-of-customer-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-22-segmented-information-segmented-revenue-by-geographical-location-of-customer-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd#country_CA" xlink:label="country_CA" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd#country_US" xlink:label="country_US" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_AsiaPacificMember" xlink:label="srt_AsiaPacificMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_StatementGeographicalAxis" xlink:label="srt_StatementGeographicalAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EMEAMember" xlink:label="us-gaap_EMEAMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-22-segmented-information-segmented-revenue-by-geographical-location-of-customer-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_StatementGeographicalAxis" xlink:to="srt_SegmentGeographicalDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_StatementGeographicalAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_StatementGeographicalAxis" xlink:to="country_US" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_StatementGeographicalAxis" xlink:to="us-gaap_EMEAMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_StatementGeographicalAxis" xlink:to="country_CA" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_StatementGeographicalAxis" xlink:to="srt_AsiaPacificMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-22-segmented-information-segmented-revenue-by-revenue-type-details" xlink:href="dsgx-20210131.xsd#statement-note-22-segmented-information-segmented-revenue-by-revenue-type-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-22-segmented-information-segmented-revenue-by-revenue-type-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.xsd#dsgx_ProfessionalServicesAndOtherMember" xlink:label="dsgx_ProfessionalServicesAndOtherMember" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LicenseMember" xlink:label="us-gaap_LicenseMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ServiceMember" xlink:label="us-gaap_ServiceMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-22-segmented-information-segmented-revenue-by-revenue-type-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_ProductOrServiceAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductOrServiceAxis" xlink:to="us-gaap_ServiceMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductOrServiceAxis" xlink:to="dsgx_ProfessionalServicesAndOtherMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductOrServiceAxis" xlink:to="us-gaap_LicenseMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax-1" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-note-22-segmented-information-longlived-assets-by-geographical-location-details" xlink:href="dsgx-20210131.xsd#statement-note-22-segmented-information-longlived-assets-by-geographical-location-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-note-22-segmented-information-longlived-assets-by-geographical-location-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd#country_CA" xlink:label="country_CA" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd#country_US" xlink:label="country_US" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="dsgx-20210131.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" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_AsiaPacificMember" xlink:label="srt_AsiaPacificMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_StatementGeographicalAxis" xlink:label="srt_StatementGeographicalAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EMEAMember" xlink:label="us-gaap_EMEAMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NoncurrentAssets" xlink:label="us-gaap_NoncurrentAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dsgx_statement-statement-note-22-segmented-information-longlived-assets-by-geographical-location-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_StatementGeographicalAxis" xlink:to="srt_SegmentGeographicalDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_StatementGeographicalAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_StatementGeographicalAxis" xlink:to="country_US" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_StatementGeographicalAxis" xlink:to="us-gaap_EMEAMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_StatementGeographicalAxis" xlink:to="country_CA" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_StatementGeographicalAxis" xlink:to="srt_AsiaPacificMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NoncurrentAssets" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-consolidated-statements-of-comprehensive-income" xlink:href="dsgx-20210131.xsd#statement-consolidated-statements-of-comprehensive-income" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-consolidated-statements-of-comprehensive-income" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ComprehensiveIncomeNetOfTax" xlink:label="us-gaap_ComprehensiveIncomeNetOfTax-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTax-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossTaxAbstract" xlink:label="us-gaap_OtherComprehensiveIncomeLossTaxAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:label="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherComprehensiveIncomeLossTaxAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherComprehensiveIncomeLossTaxAbstract" xlink:to="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherComprehensiveIncomeLossTaxAbstract" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTax-3" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherComprehensiveIncomeLossTaxAbstract" xlink:to="us-gaap_ComprehensiveIncomeNetOfTax-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.descartes.com/20210131/role/statement-consolidated-statements-of-shareholders-equity" xlink:href="dsgx-20210131.xsd#statement-consolidated-statements-of-shareholders-equity" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.descartes.com/20210131/role/statement-consolidated-statements-of-shareholders-equity" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:label="srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueAcquisitions" xlink:label="us-gaap_StockIssuedDuringPeriodValueAcquisitions" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueNewIssues" xlink:label="us-gaap_StockIssuedDuringPeriodValueNewIssues" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity-5" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfStockholdersEquityAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_CommonStockMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_AdditionalPaidInCapitalMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_RetainedEarningsMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:to="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:to="srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquity-4" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueNewIssues" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueAcquisitions" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquity-5" xlink:type="arc"/>
  </link:presentationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>13
<FILENAME>annualinfo.gif
<TEXT>
begin 644 annualinfo.gif
M1TE&.#EAZ .0 />^ (>'AWEY>5]?7U145'9V=F]O;VYN;FIJ:H2$A')R<GU]
M?7]_?W=W=X6%A69F9EM;6X.#@UA86&)B8DU-371T=%%148B(B%!04(V-C4]/
M3V-C8XF)B7AX>%=75UI:6E-34U5557Q\?&AH:%E967-S<X&!@5Y>7FQL;$Y.
M3H" @&=G9U)24G%Q<6UM;7Y^?F5E96%A85Q<7&MK:UU=75965GIZ>H:&AFEI
M:61D9'5U=8J*BHZ.CN?GYW!P<(*"@F!@8)V=G?+R\DM+2Y65E7M[>_[^_DE)
M24Q,3/#P\$I*2H^/C^+BXN[N[N_O[]_?W^'AX>#@X.3DY)"0D.WM[?'Q\?W]
M_>SL[)&1D>/CX_S\_/O[^^;FYI>7EYN;FY24E-W=W>7EY??W]_;V]M#0T/3T
M]):6ENOKZ[N[N\[.SO7U]<K*RIJ:FO/S\]75U>CHZ)Z>GOCX^-K:VJ6EI:*B
MHIB8F-[>WNKJZL_/SY.3D[JZNJBHJ+V]O4A(2,S,S*&AH?KZ^OGY^;&QL:ZN
MKMO;V\O+R\;&QJJJJIR<G)F9F:FIJ;BXN)^?G\G)R<'!P:.CHY*2DM/3TT9&
M1MS<W+Z^OK:VMM+2TLC(R*>GI]G9V<# P,W-S;R\O,3$Q*:FIM'1T=34U-?7
MU[*RLK>WM\+"PMC8V,?'Q[6UM:VMK>GIZ=;6UKFYN4='1Z"@H*RLK*^OKZNK
MJZ2DI+^_O\/#P[.SL\7%Q;2TM+"PL$5%141$1$! 0#T]/8N+B____XR,C/__
M_P
M
M
M
M                     "'Y! $  +X +     #H Y    C_ 'D)'$BPH,&#
M"!,J7,BPH<.'$"-*G$BQHL6+&#-JW,BQH\>/($.*'$FRI,F3*%.J7,E2898B
M+6/*G$FSILTB.'/BM'E2I\^?.WOR'$K4(E"8"G-6J8(TH=(J1:-*G4JUJM6K
M6+-JW<JUJU>N.;^*?9A%B]FS:--F6<N6;=JS;=N^-1NW[=*[>/,N/5KV;1:]
M2^O^/<H7[18>B!,K7LRXL>/'D"-+GDRYLN7+F#-KWLRYLV?);D*+%MTX=&73
MG+>H7LVZ]6''KE7#CDV[-IC;N'/K!A.EM^_?P(,+'XZE^)+CR),K7\Y<^9,G
MS:-+GTZ].O+GV+-K?PZEN_?OX+L[_QE/OKSY\^C3FZ_#OCU[]?#'L__BI+A]
M^[_M+R%^O[]_+-8%>%UX!!;HW78()IB=@03&Y^!XWIFGX(3;%9B@@11F^ 2#
M#:)7X(/DN5='%T"4:.*)**:HXHHLMNCBBS#&*..,--9HXXTXYJCCCB^^L<B/
M0/[XQI!$#KD(D28>XN(A3';AY)-01@GE&E16:>65:TCY))9K($+'EV"&*28=
M7)1IYIEHEEG&FFRVZ6897L0IYYQTUFGGG7CD^<@C5_3IYY^ !BKH%5)(H802
M@PYJZ*&,-NJH$CM$*NFDE.Z P:689JKII;UTZNFGH/:R@06DEFKJJ18 H.JJ
M %BPP:NPOO_*ZJRTJFK#K;C>VL"NO.X*P:_ _HK L,02&ZP/R):PP++,+IO"
ML\RZX$*SS;J@P+789JOMMMQF&\*WX(8K;@A$U&#NN>8&H.ZZ[+;K[KH<Q"OO
MO/3&R\"]^-Y+P+[\[IO#OP '+/"_%!1L<,'\$EPP"0PW[/##$#N<P,045VSQ
MQ"QDK#$+/73LL<<%A"SRR"07<,+)*)_<PLHLKWR"###'#'/++)]PP\TXYZSS
M#0?(W$"M0 <M]-!$%VWTT4@GK?323#?M]--01QUUJKHV8$.O6.\Z;+!<=]UU
M"6"'+?;89(O][-G02JNVVMV.ZW:X1,0M]]QT$_'NW0'4JW>]^";_//#?"A]L
M< X&-YQ Q(B3D,#&&W_\<<F0BVS Y)17;OGD--><,LHR=^XYS >$+GKH.Y=N
M.LXBI*YZZBHXX/KKKN,@^^RTUTZ[!KA+(($&+_3N>^^SXZZ![L(7/SP,R">O
M_/+,-Z^\ -!'+_WT I@PP_787Q_#]MQW[WT,#X0O?O@>E&_^^>B7/\+Z[*_?
MP?OPOT_#_/37;__\(.2O?_[UYS_  "NH@  '2, "&G" %TB@ A?(P MDX($0
M?" *)D#!"E)0"!C,H 8W*(0D>/"#'C2""$=(PA*:D(2K2*$*4QB)%KKPA2[4
M0:AF2,,:VO"&.,RA#G?(PQ[Z\(= #*(0_X=(Q")Z:A=(3.(N:JA$'>C@5:@Z
MU:IR1<4JYJI86,RB%HWEM2Z635G4"B.UUD;&,KK@;6BLFQKE=BYX[>V-',B7
M'/7EKQSTZXYX) #@"">XA24.8HMCG" ;Y[B.1>Z0D;O<Y#:'LLPYLF:?.\#I
M)FDZU:E !:O+9.M<YSL<_.YW.#">*(VGNU*:\I2Z^X$J5\G*5OZ@>B:(I2RM
ME[U:VO*6,_B>+KN7/O6UCWT1"*8PATG,8,8O?A& '_U <,QF.M.9]\/?_O3W
MOVI:\YK57($VM\G-;GISFPZ,X ,O<, *B/.<XIR@!2MXA'8>08:;BJ<\YTG/
M>MKSGOC,IS[WR?_/?OKSGP -J$ 'BH%>*#&)3$RB$Z$815B5:FE9BRBOMH@
MKR% HE[\XA?1QM&.IL",()56M]KV+3:BZZ0H31?>U"6O>\'QI?.:(QWSF$<^
M]O&F%$#<Q296R)X^#I$D>^0C7Q;)T8F.D2?[G,Q(=[-,KFZ3#NCD)SLYRJH.
M#Y583:4KM[I*ZD$/E[CT:O7 >LOQC6^79AU?+SWPRU\*\YEPC6L'HDF#:5(3
MFP.PJ_X^P->^^O6O'VB@8!>(S@P,%@6(32QB)^#.QJ[3H >-K&0G2]G*6O:R
MF,VL9C?+V<YZ]K.@#:UH1TO:)CKQM*AU:!1-I5JF252B%.WB%I%%6]K_>O2V
MT!*C;D-J1@6@T6UQ:^-*\0;3OLGTN#.EZ1WW^+><_O%A.PVD((%*,D5.+G)(
MS>[+C,K=[G*7DI;$I'=SQKI+FO>\Z$WO)2TYU?;ZSJKP%:7SG)=5&'"5J[.<
MI5CS.TM<[G)[XC-?,0?\UF?25:\@P&M>$0S8!O=UL! N;&$5JUC&-K:=ZWQ$
M08W(X0Y[^,,@#K&(1TQB'5)VH:-R5:QB=5K5KO;%4[0B%5]+42WZX%C(PNUM
M=;M;WI+1M[\5ETG7E=(BJY2X<40N<O7(7,#A5'"*B^Y.!\DQGUJYIXE4I% =
M252E>FZ\DPPO5&'G@$N^SKUH3O,+XFN\^;J9_WEBW2]_K?=?70;X?&DEWUK;
MNCX"%YA^? [T"/QLX&@B^- .=O W SC8 UZ PHD=; 8@O=@*;KC$F,ZTIC?-
MZ4YG>K,&?2*L1)WB5;EX: \% *YB_%JL;4U86^PB!(H% 1]H%+<\%B-(1TI2
MX-: 7>AB:;P"<.1A#]=>2FYI<I7+9(/Y[<E^C)B4ISQ(ZE;7NEKF<G:5ZMUN
M,U5UJ"LO5#'I5#.3F<SFY63O8/<"VG4RE/#-JKR=%^=Z3V_.LM1>#*Y'RUR"
M+WS<T[,'\FQ67YZOS\$T'\+]#$QCQO7 >E6PQ!7]S7(*,)P)O+A@)TSI=7J<
M@I?VM,A'3O*2FQS3H/_>!:DW0&I2F9JAJ1):JE=MJZNU>J(5A;4694UK6V]T
MQ[D>8V]YO:TT_IK(PI47L8^>-PX,M^E*9H"R&<#L?@7NV=!.W+0O1F5KCPS;
MV<Z<=KGM;3"#NZGB?AVY-3GF<Y?9W+YCM[N!!V^KRKN^S;.WWF&);WWS&WL
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
MX<6/)U_>_'GTZ;WO8M_>_?M=O7;IV%!_ _WZ%BP X&]?_W[^ A00@/_XL^'
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
MCC  ->&)$R")%KB!Y)&!%N =$;" (%!.7B"#   C!Q !-KD!KGB!&]@)!]
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
M&V!*$_%GHPSH%B%H@P[?\37*)N !-ZAO-YB"5P#<AF[?H@R$R@4= ^B$5;6
M'-AHH_P#'DCP!+>#.$B!!.@%+B[*.)B%1*B%,3!K*C#I!)""MZZ".J %-;"#
MHD0#ETZ(%@""J?0" [AI EAM7I"$,:B$)2AF7H $^-P#*]B"+> !""Y*,P"#
M+4"%+V  %0CJHFP",$CR)#>#5]BB33!*,FB$2^B$,_@"6%4%!UCJ6EA5/>
M&:@* CT!G-4_''CRHG0#_Q80 0D(!:.L QEP@!YP<2P(!3_0 UD0<5ZP@1O
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
M78DZ\YG00!()$*@!TI(&F\DPS3:X88$L8M,(JD$R,8I@ 064L#HP,:$4.T@
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
M'##/'R  .)W."Q2"& "!#.! .K$(HN18U %.[-S7BR0&(=1;?^D@!\  \N!
MC\C <4E"\21/Q#4/"5(<]4Q! ?R(D31(ESC8&]" ._)"(M" !=B@!.1 #<2*
M!@B E@B 'DP&%;# #P@A# C VLU8#=# #,  #,0 (_Q<23%. !R!!"8&%X!
MTST [21&*'Q IPC ".  DO'"(R2$%"S'"*P@#9 5+W"!D(&/(^R"%/1"#DP=
M'#+9#$7  !S!4$[&&1S!!X! V>T0'G8 "D!?B?CA$$Q&$[Q !J 5"!S!#3#_
M $6\0"FH 2/<@1Q4P <M(KN0F5SU'20"'KY,8B5:(F!Q(F[FIFZND2<^C%7
M42CZF>35$2E.UJ!A'BJF(LFPHJ*!7F@]6FG1HNE!QBWFXB[V(NNU%B_X 6H0
M@7=ZI^P58]6Q BRTPBC$959-XS-.!A1<AC2^)P-00"I$ 1=0@'.P0+Q-5&+,
M@@%PP!+HR X8@ &RP"/P "3XAQ..8P$QYN.(G^/T %-9W"ZD7W<]4S^VGWBQ
ME @8((<:P 'L@ACD 1$ R0W<@ 2XP"H%00"LET1R4*5U0@H40#RU@ 7\YV3X
M07U]I 8X%"_T 4G&TP_, AL<P@G<#PYH0 1<PF18_X(&B*#$)9@)6D$+2("3
M'*D&[*2"S( ,-$(E,$("Q,!B\L*9S, 5P$$BG$"6F, ,?$ )[,J1"*$$/( %
M%"$5Z $%).$(6()7LEBC=$ ,8$IBD $1=("G8)G%V< 'T,"M "(OH,(+Q, (
M<$ [\<(?$,$%@$ &D "PT8H"T$#6\4(6L(!8#8"G%J9A+HL*U  +L$)L>&ES
M1 "I2.:W#(  #%-B7,L'.  23 8D., 1'($0?   4$$B3$ %G$#+$<(%K"9K
M3H1K4A%LIIELG@1M#IYM[B:V9JNV'DQO/@4H]IEC_1GE?44IZE%R<AYS=I9S
M.MKH12<C35IU,H N\J(O%O]$I^T**<2!OL:!$\@! \"6>*K6$OC \*VGQ6$"
MPB+L(*"!"R0 4Q6!$YS!'"""(S!"<*7!!G0-JTY&&*!!+:@"*3S7';2 "V@A
M+X3!&BC!%5Q!+R3"9+@!KSGH<*1 Y^0>!_Q'A;+?ML4=&+0!*/PL*'P!+.#
M!F '&ZB!(91!&1C",,F""+#7"[BH^_! *H "#TSJE"FD?=T7C_KHP?V +>3>
M)KR!,8F"?'&/D\KDQ"G8'X#")[3!)[QM)=SIQRV( S3=#."  (3IF.Z .8T"
M*V" $B2"!_*"(, <G )04Y8('& !)'C"KC[A5TZ&HXR  0@<%#C  \S #]2K
M&)S_ 1WX054F!AW0@)H^0+W:@2%X02=D7\W%P+"D80J9:F%^706\B!:,'*V(
M+ C$ZI1]2P1D %CU(0I0)M1IYAGX02N0@I+(@;$B:]0M*P@TJ[-*D2/256SB
MU6P*WA=9X@3<YK:&K_B.KT]T*U7\YF*!ZV.-:^55EBDBY[FJ8N>IXN<-$BQ"
MIR*]JRU.AG72:W9Z&NM00NP1H]*H%I$MP/#=1N]54@DD0%I"4A$D0@)((PN(
M0CF-@0C PF1\P@D8" M81N$BP@G(+ G( "*T'!H8P.'P8^-@*$"R3AY(P"X4
M(9@\ 0>P:(NJUOEP@$?J:-?^Z & K6KE 4:F+4!!J?FI_V$-2$#=F@"01,_>
MVN ,*(%J5<*;)BX,>, EZ&XI02'E/@H-Z ##%<*6>  +<!B8A$*J9% 'A,"K
M@4D8E,  P*[L,L"2T>ZI5@"/LDXET(#OGAWP=D %A-(0D0H(.!LD=<+S)JOT
M4N\ -.)K/J*T:B^U<B^_>"_XDJ\F;_*VFN^W0IYPCF*@&>?[MD7\+N=FM>*Z
MKLSH 4#-2B=JW:(B$,"\8N<O:F< #_"I%3#K_($5$$(97%_3&&PE^4 "7 ++
ML<X3K $+[!H#$$ /O $8J*$3K($!X%9BR($YSDT+,&./FN,P74$+D  )'("R
M308EX*SPA;,+QQT,OT  E +S@?^)&#1"#@PD>QV #JB!R;).$U1&#^OHX/""
M)KR O,73"XS3*I6('3B"/AU/\@# 9$2!#*RM";).%2SQQRV"$V/@W?+M"\
M ?1!@,%(**!)1FE GJQT%J> )BQTB82!) 1"#Y@ G_*"HW0*")Q";+2"![BE
M".P!3/_@$*QQ!LT "-3 +H')%[C 4\&N!$PSK7# '>.Q[>XQF/3Q'T_F$G[
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
MX %HP# !(4AI00AN\DO#- +&M//L -NL@!?8P %0  22P#UY(1&,P$YYH1
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
M[C<O/D$I[TT.6D_VLV *@I072H$0(P AH4!4+L 5ED[+Q?0%^'((7CXR0$
M ((4+UYAF%3A5031A0\GQ/ B5 %% #B\ *7 E8?7% T5)AQ!P>&@J@D@!I@\
MB3*ER0\L6[)< 3,FS HT_VO:O) APX4+-'?Z])DS:% 41(L2G8 TJ=*D&'HY
M?0HUJM2I5*M:O8HUJ]:M7+MZ_0HVK-BQ9+/N.HLVK=I=O7;IV !WPUNX%BP
MN!NWKMV[?/L"T'O7AF"^@AL8/HP8,0($$!HO?@RYL>3)D7V4N(P9<XK-G#DO
M^ PZM.@%+DJ;+JT@M>K5K%.'> T;-I$: 6H'J(&;=@ .O&_KWLW!MO#AO!D8
M/XZ< 6\.QPDX?PX=>HX<%*H_GUX]N_;J)+I[]YX@O/CQY!.P.(_^?('U[-N[
M7V\@OOSY] VTN(___HG]^V^$<,*#'73@($.!. !A!@]+$!$"%E, H<$!$G!A
MA_\5MFC@P!Y->'*#" Z<4(D=@U#PP@LB!,)#%@1]<8@&,$A1(2L_J."  %U4
MV*(G;D0!1H]V]"$"#B6^@$,A=D2!9!2HH*'"#WDP<8<&$L @@B>HQ%& !PB
M888C#T@ )I@SG+B%BF1 LHL',,2@P!)F&#*" !V<@HH9DSR@2A-J_&""  )$
M8 ,/9APRP"962'+" R;,,(,E9L0APP,>M#"(&:*,,$,,,3BZQ!)8, '$  _0
M( 4H#FGQ1"</1+!J'E-8,H(''<!@91LX1.#!""-$ (($;8#AA@XK1$!LL0.8
M8$@49E9B0P4=?"!"'':8LD('$ZS!@QN6K-#)%)[\, #_#2!<P((3=ER"0DDJ
MK7N22R[)))--\E: DTX\T?L34$(-95112_V+5%-E#4QPP08?C'#""B_<U5H.
MH]767'!)7!=?>57LEU^  2"8#839D%C(ARTF&60F3X9R99FMW%G+H[T,VFFG
MM4;S:K'=/)MPN>FVG&^V]39<T,4EE]QRS46'M'/86:<T==MM]UW4Y4TM7GKI
MO8=U>_5M+5]^^?''GP$L]%#  06>?4!\!;20M@$G' "W"BVX#??<+73HX0WV
MX?V"  <0P  %#OP@@@@GM'"""HH[P#C<!SAP@^-H.S DXY'C+4*'):K@H0:>
MPZ"!""IXC@/C.(2)N@ CO)  _P4&S* F##!(4*(&?B[JN0JR2^EG[S]\_@,.
M+LY@0O$S""#!\(S^ ,,/Q"__PP^]FZ#I Q]$($(+,LRPP@@/?-^G"=_+.L*B
M'IRO*['E%Y]KL>Z#D$$,-R0.0@7$=L"JI!WL+ZH')NQZ/AH($ 0@H(&N.D!
M=BG072V!5TSF=9.<[*0G^=K)OOC5+Q0 [%\"8Y@'/PC"$(IPA"1\RL,>%K&X
MR.5B%J,+QC+&EXUU[&,B$QG)'&.RQZ",,CJTS,HTTS+/P.QE,C--S8YXL]CD
MS#8[JTW/</.SX 2-.,PA&G*,9IRD)6UI%+B.TYZ6G:A]AVI4LQIZLH9&KG'-
M:_@!&_]_X':#LZ&M<"* 6^$BY[@[PE%TF!,=YPJGN!> "4-TI)$#%&=((@G)
M 3AHI) J5SG*>0YUCY02Z#QGR4MJ('JS0QWJ^-0GV8D2!KV;'J..MZ@^E5(
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
M=+<YV]H6U+O]I,[=W-+]A\OMW=@]B+?-W20%CE.TW%#J=,^==%FF1;A7&PQ
MS,?MO$W=O$%<14NM9;[-'$P-V\-<';OIFV#KF\#)B%AM_^!:C35?ZAX*WH((
MCF;Y800(+>$33N$57M 77M 3@%F8I;DNJY$?'I<K*^*2;1+6-)^@5D T<):R
MR*B%[>*':U>#ZM?SNVAC;./AS,VB-$A5N>/9K,W5G';G*U^9$V^(A*]X1(]K
M*M9 E6[X\8(&0-I?BAZHS0+'?![A8;W= 912[=I36M_'0:[4UMW+S2 A9;PZ
MG<,82,,U3=-L+M.J*5LQ_(!,^] I_!<:[9<>K.=[SN=][N=_#N@6S =&0.B%
M;NB'CNB&7N&+G@1'L'])L>'RU.&:ZQ.8^E@'?!(%_-@GKN*=5GB'O:@O/FF#
M2NKEG)5TO:?-PTG<7+#<7)4_?O_%_UHYT0=]_'K9\PB^X?5=3Q[E/3#E4E[E
M.(4>6-X=XJ'EX,;EZ/KEQA'FR#7F.U/F273FGW$::DZD;'Y;J?GFVGYL4/N
MN+NT#HW*'?V7;1B2YX[N6C'HB<[N28#A0K#H OWHD![I_3+I%U3I^DSBE/H!
MF=[8)L[I%O?IH!Y8H@YAI"[C&WOJJ"Y*W"D[<??P/>YOL*Z^LJY5M&YGMLZ<
M:YKK0K7K+]CKO^[KP4Y&PYX 64X"6R[5RK[LS<[;WUT#T7XSTY[FKK?F):"M
MF,'MQ@;GW2[G.$?G#3WN@6GNZ6[T1P\5ZX[HBRX$ OWN\Z[A''[O00'B'UX3
M(KX"[ +_?XY=XO7L3;0(G\\$L@;?OZ6^L06W\!";Z@[/ZMGIZME'\>EK\6N'
M\?L:I[=.B1WO1A\OKZ,-[%XZ\E8>["BO\O'MY2W_I&+>C=XM\[%!\]5N\]>.
M\VT^^=ON W&>0]\.[M(J[DB+YT6/]*&/[DI_Z$SO]!@.]1L^]51?]95U]2*N
M]5P83ET/N5\/]F&/82WNXH-M]AJ+]FF_2JNNZGL*\6^OQ78+Y#MHS76OCW**
M]S2H]V##]UL7\N=!Y8)/[&)V\BF/["M_^%_N\E8&\XT/&X]O&M;^<]B>&3OO
MH]Q>FJ8YY^$N])YORB7<>:*/_^=.^HJ.X0!Q1.! @@4%3D"8_U#AP@DH,CR$
M^/#"1(H5+5ZHD%'C1HX=5WS\$%*DR $E398$D5)ER@$A3:Z$F9+&3!H=;$;
MF3/G")X]>>H$ZM/G Z)%B<9 FA2I4:-*E<XP$55J5 %5K5[%FE7KUA\_8'SM
MZA6&!+)ES9+]6E;#6K9M->" &Q?N"[IUZ3K FU>O70<J1/P5H4)%7L&%"]]
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
M_]_6;/Y)\J*-IWF!$3QG!1.HP=OF-KJ\C?D2Z<#___<_Q\&  23  C3  T3
M!%3 !63 !G3 !X3 ")3 ":3 "K3 "[S "0@]S!D](> <@T"]V.HE7\*2$/2I
M+*D &<*M,,$AUG%!F*"!K=.]&:3!GN ]WCN9L&LNX L^K&"+LSB^1UF[+V(U
MZ7&>(TRK(P0,N9NUQVBC>;J^\Z*CJ?&^V0 _\"NY@N*58N/"\[..,W.;,!1#
M\6B/N8D/,WP_C!*@CUJP VJPP7DPGKL\< LW /P_><' /-3#/>3#/O3#/P3$
M0,0 7<"%6S#$0[R%2%#$153$5>"#1X3$2)3$R[$I)/\9/=(3F \L"-0;P7>[
MB-$!Q124/8IY01A\*I"9DZ^C)I+AO>5RQ5=,BH+;IK"@Q=\QE%O$Q;%0M2[B
MQ>,)H[.*OJ*9-7EZPF(L%7IZHRF<&M=@1N[C/H"ZPFC,#2T,/,&CQFLT*/AI
M*,(:L_PA@F\$1Y=3#S0DQS2\EKU!QW3$) 1AQW9DPP(1G ;PML2APU2RPP",
MEPV0H'WDQW[TQW\$R( 4R($DR((TR(-$2(*,@-MSIAKTB1L,.%6$Q:?(IH+C
MP1X4OES4R(WDR+0PLB$DPI"\B^4!E7@RR9,<+^VY.V6,FNWC/F9L1F?\.)B$
MQO 3/^ 0O+'APF#9QI[LR6/_@RAP%$K]&4/R*,>CG+DW5,IXM+S.2DC^ RU[
MO$?-HY$$W $IP,JLQ$HEX,JN],JO5 *MU,HK(,NR-,NS),M'4,NU5$LO&(*W
MA,NXE,NYI,NZM,N[Q,N\U,N]Y,N^],N_!,S %,S!'$PS,,S#1,S$-$PK8,S&
M=,S'A,S(?,PIH,S*M,S+I$S)E$S,K$S-C$S.!,W0%,W1M$PF,,W31,W45,W5
M9,W6=,W7A,W8E,W9A,TFL,W;Q,W<U,W=Y,W>]$W;1(+@%,[A),[B-,[C1,[D
M5,[E9,[F=,[G'$XJD,[II,[JM,[KK$[H/$[L#(+N],[N_,W<Q$XD",_P1,[R
MO$WL_^3.[V3/]G3/[E3/^*S.]PP"-K#/^\3/_&0#^N3/_O3/_P30 !70 270
M C70 T70!%50_^2%!G70!X70")70":70"K70"\70#-70#>70#O70#P71$!71
M$271$C71$T71%%71%671%G71%X71&)71&:71&K71&\71'-71'>71'O71'P72
M(!72(272(C72(T72)-517V#2)G72)X72*)72*:72*K72*\72+-72+>72+O72
M+P73,!73,273,C73,T73-%73-673-G73-X73.)73.:73.K73.\73/-73/>73
M/O73/P740!7402740C740T741%7416741G741X742)7420BEU$JU5$H-"  [

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>14
<FILENAME>descartes_logobw.gif
<TEXT>
begin 644 descartes_logobw.gif
M1TE&.#EAK %6 /<  /[^_@$! >#@X*6EI0X.#A 0$.;FYFQL;$Y.3F1D9/KZ
M^C0T-"8F)NWM[7EY>0T-#<# P.GIZ1P<'!D9&5%142 @(/'Q\>7EY?GY^?O[
M^_CX^/W]_2$A(?7U]>3DY/S\_#,S,PH*"LO+RP\/#PP,# L+"^[N[NKJZN?G
MYQ\?'_3T] D)";BXN*.CHR<G)QT='?+R\LW-S0<'!U!04*"@H.SL[",C(U=7
M5UE96=G9V?/S\RLK*QH:&@@("/;V]@0$!./CXZ*BHM/3T[:VMK2TM*ZNKH"
M@&EI:6AH:'=W=Q,3$SL[.SHZ.L/#PP8&!N+BXF5E94)"0@(" AL;&_?W]P4%
M!0,# Q@8&$E)2<3$Q$I*2A04%!(2$E965G5U=8J*BJBHJ*:FIH2$A$M+2R0D
M)$! 0$%!06-C8W!P<'IZ>B4E)3<W-RPL++N[NQ86%H.#@\+"PB(B(M_?W[>W
MMYF9F;Z^OC\_/\[.SI&1D=W=W7)R<D]/3\G)R7-S<V]O;YV=G145%3T]/49&
M1CX^/DQ,3&9F9BHJ*H&!@<7%Q2XN+K.SLU145%-34U)24C@X..CHZ-C8V'U]
M?6YN;M+2THZ.CK^_O][>WA<7%UA86._O[\C(R(B(B)R<G.'AX:2DI-K:VK6U
MM=75U;*RLH*"@A$1$?#P\'Q\?*RLK*JJJL;&QE]?7]?7U]#0T)65E6UM;4='
M1W9V=AX>'B@H*,K*RLS,S#DY.7AX>'Y^?J^OKXR,C)*2DC4U-<_/SV!@8*&A
MH9>7EYB8F+&QL8N+BR\O+\'!P3(R,IZ>GJVMK6)B8L?'QY:6EKFYN6MK:];6
MUI^?GZFIJ41$1#P\/%555;JZND5%1;R\O-S<W-O;VYJ:FC8V-JNKJUI:6J>G
MIXF)B4U-39.3DV%A84-#0UY>7EU=786%A3 P,)24E-'1T71T=#$Q,9N;FWM[
M>X:&AEM;6RDI*;V]O5Q<7&=G9RTM+=34U)"0D.OKZVIJ:K"PL    /___P
M                     "'Y!       +     "L 58   C_ /,)'$BPH,&#
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
M@01X,('^^K>_/+C$'AZ4CVL,0U2JP@$M-**"L+E(N3"!8G0SBUP+F* !&(Y
M'D!QAD&^R :%4JU"O/L>TG:$@C^8P!3^R^(K&.("ZHT($4@AMB0(%";S94@=
M8&0&W$:*:!FIA\O4^1XG)""^(AZ( =SPHA\LS26L*,!QA4GA]X2  RG(<@IX
MH-.^XF,%$$[J=_&:*!(\02.ST-^4W?"&ZB5Y_R,Y7D@R6NKC1#$A(W_!A@2*
M5(!1A+ B3U "UEKHDD?<T;7OK'*91?$1$N/#Q!RA()J4 (2-P" )XYHR/A@0
MAINB),XCAM$@ZMPF$&A$3K! WJ5<!()45 0(Y'R/%=#7$@RT"-&)#IFMBA&Z
M1H/TQ+8JP9DYP@L:%ND&'G )J _2%W>^B!"D7L$+)$#M:EO["M;UR"H*(0,O
M6]D85'5(#=SS(F*LY"]'\)9T#8*Y?KF("U%01@="XFA(;P3%/+"VOB4P 7G
MV"-UT,+V;,F'&)-DV8C,ARE@]"_\NF@,%\:PQ"=^@FR!1 3;R.J4.VUPA&2@
MC2]2&4OHT=@VK;L@U/]=00I>D )8N6BS;V9(O<&; @%,_.8-J($)^A/SA M$
M$6SE$2!"<<: 2L0,,((E5U]TWY08)A7&'A8ITJC:4+WHMBL!Q2!Q'51%8^'"
MF<A"E]_S@R(<TB,S)W,%J7!N@IS"$0@.1'I5@G"#6"/3JCK0TA$J$R( U;7H
MF(@#8+2 GDND+T*(]:Y.3A 89EL@7Y#?!&!L^(2DO;1YC4D&\)#"8>$"E2Y2
M943(85:V[_T]7G6))>8Z*@[,.R+I?)$44%J2OIP Y"]CO!R;2) ,#&)CF5J$
M2"X/[,R_Y"\L:*^+I 'Z]XC^FODHQ1=?E$Q2I_[<?4'$:EYD2(AD@MPNLN?_
M23X@\)>]1_<"T6A?)J'\]P 1),2/M#Y_"7D8N9[N1D]M7PX!HRH\V>&H5Q.!
M "/',!',D#HR\#Z5EQ";@0;F5S.Z]G(&P0XPL@54MX $$7_W-G\S\0@TYB(E
M4$*?EG\+T1=WH%.C0DT'%8 T 0\P,@ 3<0Y5(#_98'HAT1>M\( 0&$N\5Q *
M '<T VT=1Q$:J!$B11,*P  O(@.?@'^A=V,*<0)L ",]0'0K&$,H029_$3\N
MPFBMTA>]$",X$!I4)!E&9!AMX 2:9BOH!U,]Z"$QL'V9\@N^=E>8QU1Z11)D
MT@':XR(CD&PI47<P=26I<PAG!TE=51+B0 FQA2,P_[!G+B(%M-8J_\-D,+((
MYZ00AO$?I)0/D- X.GA^BK99!1%,+S("6R5F)09>3>4_0# #==5Q6/4B+H!:
M(QAZ@)@0&1 $??@B4= _G$A,X6-#(H$-[Z$%!:<0M46+MO@0?^%L.&,(!=@0
M<) '0U@P)E .H;B#5TB*<((!A.@B49 OHK6*:E<!KR<2JH /5G $PX80&H!T
M+](.S8</#V -&:  ^IB/5& ".; ,1I ./*(&E1:![S$#^IB0"KF0^IA(+R1H
M[7,#BI") O$)4! C:7 1"S=E@? +.4". P$#L_ %T8 /?N 0 ,"%V]B&< 4R
M(M!MHY(+'5&$&?%,-<"0./^ICZ<4$;CP(FZ !JF 2P+1!$@W+&03B-1B!1S
M $S)E&J0 E?0?O9GA0:)#R30E%B9E0R@!F2P!ACS$#Z !3PR >%0"+:0!O9@
M!U*)#TJ0;$GV%P[8(R' !GMP!D=0")@0""^P(^\1!W^V$$FPC94SBFJ4#[<@
M/RLP5>7X:.!5!63@ EJIE5S9!+'4BQ_F#0>0!K8 #B!@+BYB!Z.$E"57)-7B
M"-;X9C 4*250D ]14@+3)F;D*0*Q"7SI+5ZH$)0AF-Q(:M[H(7'#0$12"VB%
M$32)$9(6*3P5$730,Z-""O-0=.TR*C+@!>FH:)$""/_FC,G07+8BDQO1!HG0
M,R[_\G@(40DPJ9OP09@*P0=J^"*&>(T-40F_)G\OLPP2@0%AX&")P@4QLQ+E
M9RN7  6^!)\*(0?;MRM_.!$9H L!U"8<< H;\1<J\ 50E2@_  V?EQ!YT#?H
MF9X38: O@@4,P5>70IF5MV,O @L@<6 ODR<3$0%Z,'9G$@B*R1+;0  %D*,Z
MNJ,YR@53D ACX 5%$"WA-A%/\ (XRJ-*JJ0C8 ,;A)(@4P.ZX C=5B2&( 96
M0Z"I!3*E0 .$ )$]L@(@D 8+9G ZD U$=B:UZ4@4\02Q, (Y2@ XP! ^L 1)
M6@ E$ 7561%9, )P6@ $\)X>809WNJ2&ZJ?O<'A_D0,._\ F15(%3! $H>D8
M -  'F  F)JIFGH!%W :D[H1'X "EZJII%JJF'H!*#!W%K$*-. %TA %3! -
M6' &PM $PRD2CS -E" )7: %KT !9W (J/ )D?,7,]4C < #2S .IJ ,J# -
M32 ",< '<# 'W( '2= %NQ!KXT 1&8 "%X"I'D"1"-$!HVH %R '&E!Y&L"I
MXIJ'2W("YVJJ],JI-E@1&, 'YG  "% &M6 'WN *=/!_+!&,KN%S&+&1PV(%
M;  %?R "PO40$9 %># #D5 T6K(>AH>!6RJ;(\&Q<6*PA>D_;<> )\$\,1<$
M,"(#=O %=] _^J<0'R"RFBAB-*#[()MXL[+Y9@ZY,IUXL%&1?<K' )%P#D![
MM$AKL@) ;H,0!GN:M%![M'W1 >$9!8H065&;M:[1%QA "#8 .UH;ME*K <+0
M!ZBAI6*;MG31%QXPH&K[MHVALW [MW<AMW1[MWB;MWJ[MWS;MW[[MX ;N(([
MN(1;N(9[N(B;N(J[N(S;N([[N) ;N9([N91;N99[N9B;N9J[N9S;N9[[%@$!
" #L!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>15
<FILENAME>p15.jpg
<TEXT>
begin 644 p15.jpg
M_]C_X  02D9)1@ ! @  9 !D  #_[  11'5C:WD  0 $    9   _^X #D%D
M;V)E &3      ?_; (0  0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$!
M 0$! 0$! 0$! 0$! 0(" @(" @(" @(" P,# P,# P,# P$! 0$! 0$" 0$"
M @(! @(# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,#
M P,# P,# P,#_\  $0@ Y0&V P$1  (1 0,1 ?_$ /,  0  !P$! 0
M       ! P0%!@<( @D* 0$  @,! 0$              @0! P4&!P@0   &
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
MA7,V;><_=D3(;#Z6$^KUS*K$%25MI"@\2"+W]-="T'?#"^;Y[@]%H5M_&OM
ML-//I"QKOVJ[&S%V]7;!86B<>Q23*Z8&@TX R2PJF,"QE0$G  .<S)VYL?;L
M;<"X*Y)E 6W%>FRJ;GQO?AY5TL?<%R-PR< *0V.(R6OP;J D6'A:W&M-[$[M
MKR;;MQT=VS=OLMW%W;53.ON-S3KW8E=U%K#6LI;8HE@K%%=W2>C;#(6394K6
MET)52*C(IRC'1KUHL^=-1=MR*7L;9L?V),_=<D8N/,3T@$:21PITLX4%0J!K
MKJ9@68,%!TFU+)WB?VQ\':\<Y,\('4)<1HA875=1!+.5LVE5-E(+$7%]B!W+
M-ZIVVW[N-WKJ^_Z(9ZFJ]^M.RJ):0KEDLL0QURUD7LRYKC^F3DW7;E%3;2-%
M:&=-71/?DEDO,3;JB=).M]U&;=(]KV^6/(:9T5'74JDO8#4& 92+V8$<+&UQ
MQ-G[S$.V2;EGQ28ZPH[.C:68! 2;%258$#U2#QX<CP%DT=NWN0V#96#+;?:!
M,:1IUAK#BR5^X!NC7FQG$6X(=BHTJ6QZO"HP\E5;6_8O3*$"*4L<6FJV524?
M$-Y0JSW# VO&B+86:N1.KZ2O2=+\_61C<,H(^UH;B"%YVUX&=N>1*%S,-H(6
M74&ZB/;E9746*L0?LZUX$%N5^M\XU=BOF[O#O'[F]+WZF5%3LG:V>&VMN=QI
M;4=H:]S%%BOTLF3UB[W:&EIJ$?4Y1W4F$I5* _7,111THW7\M >HQ^H/4;?L
M>U9^-)-[>4>&#JR*8'.D:D0@$-ZQ#.!X7%S7F<_>MTP<A(?80Z33]*-NN@U'
M2S D%?5!5"?&QL*Z(E]ZWG7G;#M'N#W5IT] L&J-=[1V5/:L@K_"WUR[A=<0
M,W9$&T?<647#Q!WUDBX<!3*9 I6JBP%.)ND1SF)M^/D[M#MN!/U(YI8T$A0I
M8N0O%22;*3Y\;<*Z3Y\^-M4NXYT/3DABD<QAP_! 6X, !=@/+A>L0T9O/N@V
M=,U)>_\ :-&:HUS:*_\ ;Y[VEW%4Z_O(U-Y#%E8-L:HPU1C'CP\HJJFB<Y'(
M%;]0G'J .!W[AM^TXD;C&S3-E(UM'19 ;&Q]8L0+<^7&M.!G[KE.AR,,0XSK
M?7UE<BXN/5"@F_+GPJ\[_P"Y]?5-THFF-9:ML6^^X/94-8;96M7UR<@JE&P-
M J3N*C[+LO9U\LBOV10Z(PEIQG'MUO(?2,G)NB-F+)R8JYD->V[2,R"3.RYE
MQMMB95:1@6)=KE4C1>+N0"Q%PJJ+LPX7GN&ZG$GCP<6)LC<95++&"% 12 SN
M[<$4$@#@2S&RJ>-LOT5M3;.PAML/N3MWLV@[55%H@R(KW2H[*U_=8R:3D!0D
M:)>:PLR>OE8M:,.E(LY2(AWK0RJ!BI*I+$4'3N&'AXVA\')3)A>_V61U(MP=
M&N!>_JE68'CQ!%JW8&7F9.M,W&;'F2WVE=&!OQ1EL3:WK!E4CAP(-ZJM [S8
M[Z@]C3;"N/JT37>]MUZ-<MW[YL_/*/M,;!FJ \L3<[5-,K=C8%X872*!^544
MU (<1, CF-RV]MNDBC9@_5QXI> M82H'"_"+V)\:SMV>NX1RNJE>ED2Q<3>Y
MB<H6^ VN!X4[:]YL>X_4<7MF-KCZJ-)2W;6J9(22?-9%VBKJS;%WU4Z?'=LT
MTFYDIEU2CO4B '4DDX*F81,41%NNWMM>:<-F#D)&UP+#]9&DEK'RU6^*FUYZ
M[GAC,52BEY%L3<_JY&COP\]-_CK2W8QWQTSO@H=JM$)2[-J^T4NR'BY_7MR=
M1KN;+6)A1ZZUUL6,>11S,Y.E[(@V*J\>Z(!>AVT>LSAY[);+V_[!D;!D)%(Z
MRQ2+<.M[:AP=#?DR$BX\BK<F%5-CWS'WR!I8E:.1"+JW.S"ZL.5U87 /+4K
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
M0L>S?N/XBAZ],24MFPNRG;M3HQXUR0Z<G/VVHWN)K!X]X0P)G3?2$@@**I3
M40.!@'CQSE;M/%B=_')R>$,6?&SW\ K(6N/0 ;UU-J@ERNQ!CX_&:3!D5;>+
M,KA;?"2*ZX[5^XW1,QV0Z@W8TOE-JNJ:GI2H%M\K-34;!1FKW--J<?&6ZI78
M7R[8E2GJ%)QCB.DF+L$7#)TU.D<@&+QG%W?;-P3?Y\ QN^8^0VD $F34Q*LM
MOK!P0RD<"#>NSM.Y8#[%#FB1$Q$@7420 FE0&5OS2I!!!X@BU:0[&868BONV
MG,M+PDI6$-BL^ZW=%8K4TR6BY.!H&[MM[@VWKIB^BW)$W,4Y-1KE'K*-52$5
M;'5%(Y2F((!T.X)$?ND(C!S$<>)F!N"\4<<;D'Q]=2+^-KUS]A1T[8+NI02C
M(E52+$)+))(@(\/58&WARK?'W>DC'*]B/9,U2D&*KG_%,[=B^[I.VZJW434%
M1,<OED4,?J( #U!QR7@>?1G.[E5AW#GD@V]MF\/_ ,C5T.W&4[!@@$7]CA\?
M_P :UIO05AA*-]XQW\:XN3UE!7C<K?MPW9J=K+.$63W8.K(#3,5J6PFJ)7!R
M&FT]?[%I4B640;=9X\9ALJL4A7B9CWMQCDR.V-NRH 6QX.O%);B$D,ID&KRU
MHZZ2>>D@?5-4]OD3'[DW#'G(6>?HRQWX%T$0C.GST.K:@.6H$\ZF1,]"[2^]
M45E-?/F<_&=N/9I<];;FL4(X0?Q<-L+=FX=96^@ZREI!J=1 MLBJMJF4F74>
M)A<,&DDS55(0KU$3X>.3$[0T9(*OE9RO$IX$I%%(KR ?FEI%4'D2K ?5-$D3
M*[MU8Y#)C83)(PX@/+(C(A/YP6-F(Y@$$_6%8KIN>94/O<^\+T=;+<CK/;_<
M7,ZVWCV^V^40AU'UUUNCV]4'3:SF@-;$FO$7"5TCL>A/S2,08BX-4Y-FNNAY
M#X#&W9T9R-AVS/A3JX6*KQ3*+V5^L\OKE>*B5'%FX7TD W6M6$XQ]\W+"F?I
M9>2R2PL;79.BD?J \&,3H;KX7!(L:V#VBWS<X=RG=[V_;5WZ7N$CM*USMLGZ
MU9W=(UQ29^$D]K1FV'%JKLRUUI&Q,4OY(4R/70*X0(Z2*N;GDAR#E;>L?!^Z
M\+<L/&]F:=IPRZW<$1F/2P+DG[1!L;<*L;/D9OWGF;=EY'M*P+"58JBD&02:
M@=  ^R"+B]:7[I]&5^Q_>,=H*)I5['4SN"B[+8=_T!JV9#!;<F^Q]>(VKVV/
M["8Z?G%4I=XV&X<.P #A*M6+%JORBU3*%_:-PDB[8S3I!GQF40OQO&,J\<X7
M_.1 !^:2Q'$FJ.[8$<G<N$+D09(9IDX6D.+:2$G_ #6<D_G *#P%?7S/%5[*
MOF=]Y^UM;VA=J;.B3,%7;HY[^>U9&K3UG@7EIKL1-&MDB+1]-5J.GJN_G8](
M0'K;(R3%13D.%B<9ZOM(PKD9C9"LT V[(U!2%8C2. 8A@#Z2I^"O+]U"9L?$
M&.RK.=P@TE@64'4;$J"I(] 8?#6[])=M%VJ>XK;W';WVZSW+NRQ4&+U+ .:O
MK]/5>M]:ZNCYY:VOJQ3*8>U7J;<2=JMBJ;V8E96:?N7?N3)%$C9!L"9^?G[K
M!-@IM>W0F# 60R'4_4=Y"-(9FTH+*O!550!=B;DWJ_@[7/#FON>X3"?.:,1C
M2G31(P=155U.;LW%F9B390+ 6K5';Y(,&??_ />/E=OF;4QV79N)2N72"!C
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
MO"Q,^'H9L4<L-[Z74,+^!L0>(\#S%6/3_;UHGM^C)&(T=I_6^IH^971=3:5
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
M8?'-67F9>?,<C-EDEG(MJ=BQL.0N2> \!R%;<7#Q<&$8^'&D4 ^RBA1<\S8
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
M#M5KV+!2\,]>DDCMG>MG=)U54K_2;,9NS.J4TB]UX25CQ1*N1%^R9'$Q ,N
M?5>Q_>]LW;<>U;=NN+E9&T8>URQRJA0,N<N5N&1AY4&I@/47-./-J*%H99U
M-HS7Q/WC>X7?^[YM\W79\S#Q=]W#>89H7?J:7VY\':\3.PLDJA(ZDFWKE0:
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
MV(;35K<J,G*QSF3JD%/U5LW<QSL[=6*EJG:9"3L=7L4:(>6]8O5?/25#D2D
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
M'I%E12"22P\0 +FO-=T;_/V_B02XF,<O,R<N/'CCZBQ O)J(+.P8* %/@2>
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
M^#LI[]= =D>C- 7#=_8/LIQ"2,=LBU0UNL#_ +<ZE)NIB/MNO8#;S&25A&]
MTXG'-)")C[8BXE@C'Y(EHY4028^5W1B;#OO;V3OV?DI!W%$""BE0)F%BKF,B
M^N2Y5C'9=0UD EK\8Y>_;%W#C;#M^.\_;LMB'8,QA4DAD$@-M$=@RB2[:3H!
ML%M]ZL^>U]"IBE,4IBE,4IBE,4IBE,4IBE,4IBE,4IBE,4IBE,4IBE,4IBE,
M4IBE,4IBE? AW]VELC7G>+LIU6-O=W8Z,[N+K9]LOMC:J[B=A4^>T]MY*$!U
M*U/<D1#6N!-<=96*(B0;U"?0!R^@E44H-V@+4S)WGO9.YER]EA 3!3/PHUCZ
M<N.DBRQWX-$2IT2*3>1#97'ZQ3?4M>#3MIL3>9B7SFP<R0R=2+(DC,4EN*RA
M6&J-@/U;B[*?U; C2U;(W]]U#<[UHS<=,K/>'W@6.RVG65W@JY7KSW.;CG:5
M/SLE79!M$P=OA)JZKP\M6)E\<C5^W=$.@JU54 X"7D,H[9W7-C;ECY$^/@"!
M)D9BF+$KA0PN58"X8#B".(-K5=W/M2+)VW(Q\?)SS.\+A0^5*R%BIL&4M9E)
MX,#P(O>N2NQ_O!WJ[[B+)+0/91!V>PWOM#TC6%]6]NNV=;4N(UA(=LNR=N57
M:52F*+NU743[7=JH]TW,QBI2K];Y:),"+E-T\9OVK@WI-^V7;QMJI)GLD4>;
M*W4FC=C()TC:-@\74#JRQ%EDX!N(LK*17F]AWK<#N3/'@*\LF%$O3AD10A@>
M19%*2],HRM*%:/B5X$%E8&M%+3V[N\C9EB[<&.E:?K%3N-^\@G=]+W-QM1E:
M^XO0VO>V,-64#:VRM=FUE&O*_K5I&[ [?U*PSN9;24)B5G0813=P)%W*-YH\
M+9<,;E[0\C8VUB$+T[0RO/U'C1^H09/4FZABZ?JJFIR+@&B),[>LQMM..D:Y
M.Z&8MU 9XD@Z:2.AC!$=GAZ8EZGK,^E ;$C["+?=H2Z9%50[V>^PQ2%.H"27
M=AO914P% 3 FF4;V7K4$ X !$.1SY^.Y,OE[-MO]DA_@U] /;>)S]IW/^US?
MPJU9]WCV77+5NX-E][V\+GO.L6?:=08:HUYJ+<^Y+!L2Y1>I("97EJ]9=]R\
MO.SK69VU..3'<L(1NZ<L:5&N5&::R[MP].GT^X=\BGV^'8<<8TB12&1Y8XEB
M0R,+%85 %HP.!8@-*PU$!0HKF=O;'+!N$N_9!R8WE01I%+*TKB,&X:9B3>0G
MBJ@E8E.FY8L:^P'Z7P1O!)YYX^KW9J_=<_%[LS6 <\=I7Q/[OEKV5SY5Z_29
MN8.4F$TM[!3@)K@?E58I%_#BR>=+MY4"P+F_DX&>/\<<1'_?+Q 0S'J4]:H_
M:\N?^3KDI_KBD,E_"F!$,E^J\;T]?QM4/M&P"/T:ZX#\^0B2_P !RMB\7D:>
MMZ*G(.IM4XD=Q16K84UO,6&1;+F)PB<2<(I( )^HX 'U@XYYS%T\!QIQ\:_.
M%V"=JCV?[%=5;<7[TNZ72E/9T5O,V.-A-^3U;HE<#R@<NEXF,1CC-(*%0153
M32;E,?H G "/(9]#W3.W',[KR-HVW PLG-?**(OLX>61N%KF]V8^)KYUMF'M
MN#VE!O.Z;AF8N#'BB21O:2D4:B]["UE4> KL/7O9X[VPRD9+7/WD_>!;V,0\
M3CY)S#]QEL639/54".DVZXGB$Q*H=NH!P\/0.4MY;N#MZ5(-ZVK!QI9%U*'Q
ME&I0;$CUCX\*M[&W;G<L,D^P[MG94,3!7*93$*Q%P#ZHXV-ZV%_1S;1_[?'>
MQ_E"VG_FS./^T<O]#VS^S+_"KM_LY%_3-S_M+?P:?T<VT?\ M\=['^4+:?\
MFS'[1R_T/;/[,O\ "I^SD7],W/\ M+?P:?T<NT?^WQWL?Y0MI_YLQ^T<O]#V
MS^S+_"I^SD7],W/^TM_!K;NB^S*^:@V=!7^<[M>YW:D9#M)ILO1]D[AG;93Y
M4TK%N8Y%Q)0+UB@V>+QBK@%VYC& 4EB%.'(@&5LO>9,R X[8V#&"1ZT<(1Q8
MWX,";7\?,<*LXFS1X<XR%R<Z0@'U9)BZ&XMQ4@7MX>1IW4"(=V/W:(@'48-]
M;X$I>0#J,'9QOP2EY'P#J'PY]66=I_N?=/ZO%_U,-5=W_OC:OZS+_P!--79X
M2%G#ZU?4'V^7(11N/BZUT><XMX/)J[]I/,5$9:P$^O7'X_UM:&5_ 68*/X,7
MQC^<*Q^L\+5*&Q29/Y2N31?:)6**W^]I%;%L<^+?N^*EY/(4_2HY?%:'FT@#
MTB:#EQ /E1:+E_#F=&.?MGY*7D\J\#=XI/\ E_/;_P#UAG)MOG]X8)@'SXZ4
M1Y.*:F\5-:>[A=OWBFZ'W!;]"U:%VANJLZ\M,WJ[7$A+(M&]TNT?%+N(&OJ
M#Q@Z7]^?%* -TU4%70AY*:B9SE,%W;L/"GSX(<^81X+RJ)''-5)XGQ^6Q YG
M@*I;EDYD&WS38$75S4B8HA^TP' >'CX7!/*X-?++[K*Y]WMXDFF[.]+5TOJ3
MN"[C[[LMG9XVP520IDA*:=T;0*-':=AH*DSCI]-:[I4%9+G9WA(]=0R\E*R#
MJ3.<2N4RA]$[AV[M]-ESDV:03XF N*(V#Z@LF1+,9B2+!W98XEU<E4! .!KY
MGL.Z=PMO^WG>(V@RMP;+,JLFDM'C10B  'C&BM+*VGFS'62>%?5KN/\ ^(M6
M?^\/HC_]Q87/,=E?\7G_ /LV?_TSUZ7OS_@]N_\ ?-N_ZJ.N$;']VUVK=]-=
MT%LON&J]CL-KT'M'<[ZGNX:W2U?2EHL=]6>8&HV]-F<3SE4^TZ\T5*W R"J7
MEF(FJ1-10A^]W!W-NW;^]Y6)MC(D.1AX6H%0;'V*#UE\F.HW/&][D$UPNU^V
MMJ[@V#%R]S5WFQ\W.TG41<>WY%E;S46%APMR! K<]O\ _P!8++_[[.@O_AZJ
MV=7;?^VX/_Y?</\ ]C+7#W3_ +GR/_Z[;O\ ];#71?==_P!6W=7_ +/K!_O4
M<\7[OO\ O?:_ZY'^&O=>\K_L'=OZC)^"N@\\=7MZ8I3%*8I3%*8I3%*8I3%*
M8I3%*8I3%*8I3%*8I3%*8I3%*8I3%*@)@#UYFQI4AP[;M$S+.ET6R1?K*N%4
MT$@^,ZIBE#%J5CIKI7!4%)K(EDU0YY2AFSR:/R'JYBT'1"C\8@&.%*I#V\QQ
MZ&L+(F./H*]5CXXWQBW4=+R1?E0 <SPK'&O/VK:W!B^1$Q[9(3%ZA64E7BAB
M<_2 I3,HE'J$O/ ]8@ ^W,_,:Q7#VXV^R[G9+7;=)VO<\-$4"U5[])'[*PSC
MV$N%FC+'"1$WK6@4-1):/6K<6V!<UBERIG1(NF=JT\Q7WM9K]F[9?8]LP<?;
M^Z<?;),G,QY.FK1QK)#$\;NF3D3@AA*QTC'AN"5(DDLO363X9W5'O^ZY^3N7
M:63NL6+A9,?5999&CGE26-),7&QR-)B0:CDSV(# QQ:FZK1\F_>^]MVG(.A.
M>[.F5A]K'N:93M$JG\^NHK5:]4;*DJW9KU2:A.PUBL5 F:^XM+1_6WPM.9('
M2B222()G("*8%\5VEO&X'.AV25Q+M#ER89%61+K&[@J'#:2&%_5MXWYFOH'=
MNS[>,&;>HD,6[H$ FC9HWLTB(02A75=3;UK^%N0KLIOV>Z<[1NW/:%1[-]:_
MS06.V(123ZUT-&2LNU)9^[G&;)2<D;?95[';K1(PS23>.6X/G3E%L=18Y2D!
M101L=O;VV\=V861W4\>3M\3,QCF(6 A49@A5=*JK,%4Z;$\!SM5/N?9#L_9V
M=C=I)+B[E*BJLD +S@M(JEU+:V9D5F8:K@<3RO6U- (3-/L=FUSL*<V%*[%8
MQK9^C)VBTSMHIUZJ;%V9FC>:*:4,LA /5W+]-*;B!4%S&NS)E 5FAVKE;9W@
M^-N6%!O>S18<>RNY4K%%'%-!*PN8)]-C(H"DP36TR(&/JR"1%T=E)E[7GY&Q
M;Y-G2;ZD88/--)-!D0J=(R,?7<1L2P7(@OJB<J/7B,<C]+NY)-JKTJ(.Q(4H
M&\])FLX1 3<\AYB)%.DP 'CSQGA%12.) /IO7T8D@\!4I";CG!@(D]1%0?\
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
M/$>%=?!S%SH.NL<T0N1IE0HW#QTGC8^!\:Y:[IQ O=E]VB81X N^M\&$1]
M'9QOP1$?@  SJ[3_ '/NG]7A_P"IAKD[M_?&U?UB7_IIJ[8;R#5T7K;N$UB^
M'BFJ4_ CZAX,/ _!G,*,.-N'S5V[U4>;\(_/_FY&Q]%+T\WX1^?_ #<6/HI>
MJ"4DQCTF()I@N]E7Y8R-044%)N9R9!=THJZ6*4YB-V[5LH<0* G.)0*4.3!F
MMV(.D6O4P.%SRJBZ17#F0>.'HCZ42"9C'ASX])&;90#'( ^CSU5A'VYN&*>;
MFYJ!D\N5<5]^NLMF[,TY1&>D]>CL.W43N'T7M1>EQEAJ5*D)BM4&YH2UA+'3
MEPDH.NI2"#'Z:9'#E/S!#@HB.=;:CBXTLR9<@AAFQ)HM95F 9ULMP@+6\["N
M/O,>7/#!)B1F:6'+AE*!E4E4:[6+D+>WF144MQ;]3223'[K_ &682)D()C;<
M[,3F$2E HB)_YYR=8B(>G@.?8&:1M6S_ .)X_P#(Y'\U4OO;>/\ #<C^6Q_Y
MVO?\\N_/_"^V5_A:[,?^FG'W5L_^)X_\CD?S5/O7>/\ #<C^5Q_YVG\\N_/_
M  OME?X6NS'_ *:<?=6S_P")X_\ (Y'\U3[UWC_#<C^5Q_YVG\\N_/\ POME
M?X6NS'_IIQ]U;/\ XGC_ ,CD?S5/O7>/\-R/Y7'_ )VG\\N_/_"^V5_A:[,?
M^FG'W5L_^)X_\CD?S5/O7>/\-R/Y7'_G:T1W*_XS/<%I^9U%7/N\+KKZ3M=J
MU8M^FDYMKM/&(KD?5]L4BXS$H^3K&VI6P.$FT17US%2:-EEU3@4I2B(YT=JA
MV3;,Y<Y]PAD$:2>JL4]R6C=0!>, <6'$D"N;NTV][I@M@IM\R%WC]9I8+ +(
MC$FTA)X*>0)KZH2+:/7<K^:U3\WK$#+H];9P(\!XBNV,DJ8>/:(AGGXHFT!E
M)!(\#7J&;UB#:U8%,P4(P3/)NHUA(,$E$ >&7;$:2S,CAPDU(Y;R<<#-=R0B
MZY>LAA!4"CU 8XATCED 8=;D3;4.!!]/F* D@Z>?D>7Y*O!*HF*0*PUCGXD1
M$0!L]51L# @E'@2"G)$.\Z0$/VJY?#,-[3 Y4/>WG^6@Z3BY%JDF:W6-'K!G
M%6%(O(^;"/#P\ET@'/4:/D3J-3F$/45R'(^K)#-8<)DN/W>?TUCHJ?J-QKVU
MO::+@C)\LZB7IQ "Q]C:*1RR@^Q!=;I;N@'U"DL?G)@8,_ >J_R?DI^N3GQ%
M9HA84AX!RB9,1 !ZTA\PGCZ^/ _ _!SD'VYQQB8$>GA^2LB=>35>T'*#DO4@
MJ14/7TCXA^<4>#%'XPRB\<D9M("#6U65N*F]3\A4J8I3%*8I3%*8I3%*8I3%
M*MLM+,81BI(2"HIHIF33(1,AEG#EPL<$V[1HW3 RKEVY5,!4TR@)C&'%*Q)5
MO.SA 7G7;BN12H<HU^)< 28<)CZ/MB91-U-S'#ZR#,Q )SP*Q_1DTC:0V6HL
MP4<:KF+>/B41;0\>VC$!'DX-4BE56-_5'"X\K.%1]9SB)A]8Y;7'5>?$UJ,A
M/+A4\51$>1$PB/I$?$?QYMT?!4+U#S?A']7RYG12]623<"544CD3<-G+4R#M
MHY3*LU=(',<ITETC<E.4Q1$/;XYHD0%@#Y5D,1Q%6!))=F4I(J2.BV(  G%S
M9%I1F@0 #A)E*HJ)S#5 H>!2*^\E('@  'AF8^K'_%GU?(UDE6^L.-5)9.0+
MX+Q)U0#_ %6)D&,BF/P@@Y/%OP^+RC#EH32#^,C/Q'Z:AH7P;Y:]#-M"!_9
M/F?P/(J4;@'QJ"S,A_H^,F,B&WK!A\1K&AO"WRU )^*-X!*1X#[#O$$A^(2K
M'3, _&&2$V,?M@?#PK&B3RJ:I)5^09KQDR6OSD.[%(SJ+DUHI^Q6.W73<MU#
MMG1EFYSHN42*%ZBCP<A3!P8 $-<GL[D/'*$F'(@\?@X5G2Q!21-49Y@BX^>J
MQ]96;M3J/(QR:9?Y-+[29<%#UB(BN'4<?;B$8D*V#J6\3>LOU7/(VJW#/Q(#
MQ]J,##[$W*:YOB J'FF$?DS89L<<FO\ !<U'1)Y5+/86)"B8H/ERA^V1C'X$
M^59RW:M@#X1. 8$@;^+21CZ%/XZ:2/K$#XZPZ8VE!1!3^>\BFAB@/A(2[=9;
MP]D; %FGAQ^ 3)_&&68\+<L@VBA*@^+5J>?&CXN_Q"M"W'N#:'3.C&LW-@.4
MY3(IOT!A*PFJF8#)++Q23AS+S@HG #%*Z732Y !Z SJXW;+.XDSI+VXV7]UO
MPU1FW55!7'7CYG]U_P %9IVYW]Y,Q]S?VF16>2TG:&ZPN#%*1)-!*':HI-6S
M<G2FV:-P#@A"!P4/:(B(XW[ 1)8DQP BQD6^%CQ)\SXUC;LDLKM*;L7Y_$/#
MRKJQHLB[.D!%@$BA@#J 0]?J\1\##Z SS$J-$I)'$5UT8.>!%JL#5\$T:2,X
M.<B#"5?Q1H9-0Z)6WN2XI)JR_EF(X=.)!,H+IE,8$ 1.7@IQZC96AC$[$L>7
MA^[PK:S:. Y&LA8'(!RMD$TD4S$5*5)$B:*?/DGXX(F!2!XA[,W2PJD9('*W
MX:BK$FU?!?M V!.:J[(JQVI[V[(N_A:5:54M2N T;2!7; %6I443N:[:8VZI
MF6(5TU!5NY(4G( 4P!P.>[8S8?=K=T;/G[8)5R3+%U)+CB.3H4MQ!(*FOG!C
MQ\_M!>U-YP-S,+XHAEZ<94\#S1U>XL0"K"MPN]I566!FWL7;K]\3:8IK+P<T
MK 6.EV"3@I%W79EA/Q9).//<R)O&J,K&HJBF(@!A('.=:/N#<,?4^$.U<?(:
M-T$D<4:R*)$:-]+:>!*,POZ:XDG;&VY.E,YN[<G&66.0QRS2/&S1.LB:UU>L
M Z*;>-JZF_I _P#N1_>$_P"3:']^F>!_9S_G]M_EO]&OHO[1_P#(;E_(?Z5/
MZ0/_ +D?WA/^3:']^F/V<_Y_;?Y;_1I^T?\ R&Y?R'^E3^D#_P"Y']X3_DVA
M_?IC]G/^?VW^6_T:?M'_ ,AN7\A_I4_I _\ N1_>$_Y-H?WZ8_9S_G]M_EO]
M&G[1_P#(;E_(?Z5:>F-OV_N5[L>QUY =K?=AK>NZ@V=N&ZWNY[EU$G1*A$0D
MWVS[>HD4 RYK))G5D']HLS)LDB5$>KS1$3 !?&ZF%#MFT9ZR9>'++/%$J+%)
MK8D3QN>&D< JDWJD^;-NF\8#1XF9%%!+(SM+'H4 P2(..H\2S  5]+G+9D],
M!U6X X'P*Z;"+9Z41] E<H"50X^/H/UE'UE'.'T-/%"5/F/QUZ@O?F :M$7-
M"5](1;AX1T5C)HQ:#T?+(+IRNS(\*S,!!\HTBTY,FN5/Z/43J "_2*7,8Z\3
M/8:D/$CD0+<?GJ+>HP'@?F]%91YOPC^KY<QHK-ZQN7.B[]XCWR(N61SMW!2E
M64;.6CM "G0?1[M$069O$#@ E.4?3\ CS7D0,UCY5)6(JW$6EFW@D\:3:(>@
M)/B&F ]A3O&R+B(?'_=&2;"8?2//CFR-YT%A9E]//Y:$(W'B#4\LRHF'+F-F
M67J%0K/[0;AZ_!S"J2)1+\(@7XLL"=#PD1A\5ZCH/V2/P5$MBC3#T_:[8AOR
M'#H6:@? *;SW=0!^3)B7%/B!\(M6+2CP/[OCJK))HJ?R;]NK_6GR*G\!4V3#
M8QY,GS5']9Y&IH.SCZ%3#\2HC_ILGIA/(I\U+OZ:@+T2_67Z?SE^G^$8,P1
M.93YJ7?TU3*33-+^5E62?'I\R2;$'YC+@.0+XHYLGS5FTA\#5.-D8#_)/5G8
MAZF#>0?_ .B:-UDOG, 9'J0'@@+'T*3^*EG\2!\=8M-;(AH<IC.UV;,P<_2F
MY5DP-X?^8M#2DRJ/[GW<H_%EB+&S\CACP-;S/ 5K>:",7D<?%7/US[AF)"]$
M2@I8G:"@+,R+M58>J,W20\HO%6:JJDU8'#8_TD_/,@D4WT@* YV,/MF5Y!+G
MR#AX#P^#P'P\?EKGS[JBJ5QUX^9_=?\ !6VM"WA29H31S8)!5U-OINPNWCI4
M"@"AEY144RD3)P5%%)( (0A0 I"%  ]&5=[P@F<1  (PB@#X!6S;\G5CCJ&[
MEF)/QUOXC@IR@<A^HH^(&*("'S@.<(QD&S#C71#7XBHN!;OFYVDBU;2310.%
M&SY!)RD8../$JH&#G@? ?5FIL=&]!J8D8?!6(JTU1J4RU*D3,#DY.:MRRBSR
M$< 'I3:*G,=[$F'U&2,9,/6GQD%DR,4\#>/YOR5*T<O/@U4D5-&<N'3-9!Q#
MSL8) D(I<X Y;@?^2<MUD^$WL>O_ *FL3DIO0( /AG3AGBR4L0+^(-5W1HS?
MYZSR/G1Y*D^$.!X KD  ./4'G%#PX_=!\H>O*N1@"VN#GY?1]%;8YN.E_EK*
M 'GQ#Q ?$!#UYRJLTQ2F*4Q2F*4Q2F*5X$WLR0%8XFM>V)RDWNE'/)B4L6H$
MV@S44'ANG9546Q8\51-] %E&'O)$!']N80#Q',&@J_27FE='$XCTF !2'U=
M  <!X>HW/.=+'T&(:>?C\-5Y+AN-4'6/M_%F_2*A<4ZQ]OXL:12XIUC[?Q8T
MBEQ6+3<FV:R+)HZ.9N9X@;W1PL7H:+K$5,!V97(B"97@%$#@F;@3E'Z// @%
M:86<'PJ0XCA7@0$ $! 0'@? ?#U9E?QTJ5Z<M+SJ-3"*')]0YR_FF$OXA#-R
MUBO1UUA*/4JH;T?6.8P?,81S<J*3Q K%4XB _6(D;\Y%(WXR#F\11'FH^2L$
MFK+)+JH@(HG!+^MD3)ZA]92 .64@A_,7Y*UL2.1-:YEI:4 IRA)/RAR(<$=K
MIAQSZ."'*&7HHHAR5?D%5F9O,UJ2;667$PKK++B//(K*J*\^C^J&-EZ( '@!
M5.3CSK6ZIVB#]JJ];BY8I/$5'C8AA3%=L10IED0,7@2^80!#PS?*LSP.L!TS
ME#I/D? _NY5H!02 R"\=Q<>BMA/(+45U.(QTFK6WQ@*0J!!32(/  4H"U.D
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
MB^D"@!>1]1@RK_ZC,-E'J?-\OC6W]7%Q/UOGJ1!UX8]PYE)!XM,V&2X]_E7
M?2,7D.EJS2]#=J00  *''( '@   !U<;%3'%R;R$<3]%5I)"_#[-:]V;NBN:
M_;N&+51O.6P4S%;0S=4%$&*H@/0O..$A$K5),?'R 'SU/0 % >H.YA;;/F$.
M04Q_%CS/H4>/P\A7.RLV/'&D>M-Y>7P^7P<ZS#M>E)&<UBK-2SH[V3EK=:'S
MUR?@!575? !ND@?132(4H%(0/HD(  '@&<3N>-(MSZ48M&L2 #XJM[0[28FM
MS=B[$_+71>>=KJ4Q2F*4Q2F*5Y/]4WYH_B'%*T]ENJU5;5ZZ9CRW6,0!'DR8
M_22,/[I,>2B/P^ YD $<: D<JR)M9"CP#I 2#_56X]0?&*9A P?((Y@I4^IY
MU12M<IMK,"K]DS6>AXIOD#&CY9(WJ,1V@*#D3!ZN1,&:S'60WE5G&KV^(#BN
M719XU#CIB;@T++(=!?JIDDD@3?$+Z@Y <P(V!NIXU,L+<:I3S-H8>$_0%G)
M$1/(4V12?I]/K-]F.A3<$]O'(YM7)R8^9N/3^Z]0*1GT5+1NU.6."*TRM".1
M-T^Z62->1*H#[!643]V^8W&;USQ_K%M\!^FHF$_9-9.V(5\3S(YTPDTN.04C
MGS9V40]O\6IS^#+"Y>.WC8^D5K,<@\+T4171_E454_STSE#YQ#C-ZNC_ %"#
M\=0.L<Q4H#^PP<_ /^;D[5BYKUYQ_P"J&_?C^SF-(\J7:H=8_E?A_P W,VI<
MT\PWY0_./[.+4N:CYIORQ_?#^SF-(\J:FJ'F&'TF']\/[.9TTN:AU<^D0^?%
MJ7-0ZOA#%J7-.KX0Q:ES4>KX0Q:ES5@DJW#R:XNU4#M9#CC[3C7"D?(>'H\Q
MPW,7SP#V* <,TOCQR&Y%F\QP-2#N.'A5I- V-M_:%E1>D#T(ST:153C\GWZ/
M.V5'XQ((YJ]GE3ZC7'D1^,6K.M3S7Y*DB:X-_P"6@HE\4/2>-F_(,;X01D&Q
M./BZLD#D*>* _ ?I%9]0^)'Q5X&8ET_!>GV O'I%L>,>E^04GA3"'R9,3NOU
MHW^*Q_'32/!A4H9]0!'KKEJ(/CX?8QC\?*FN<,WKF*.:2_H_EK&CTBJ=Q/&5
M3$I*_:1'@?\ T&N'XSYN7/C'V)?T:P8R?%?EK#I 91SSY-;L8^GCJBU">S]T
M.;UW)!RBE/Q ?A-:&A)^TOS_ $5B#JLVA]U E6Y@O(^E1MT>OU]9BA^'-WWL
M_P!B _OG4?@O6EL93S;Y%)^BK<&I+/(&_CXU9 H^GSG31  Y]O2=4^#NN<19
M>A&/WSG_ .T5#V2'Q$C?(OTFLEB=%F1.55S]FH' >>ODSQ<!Y]1U04 H_$ 9
M6ER)IQ;)FED7\T61?D6Q/QFII#HXQ1HI\SZS?*>'R"MIQ6NH>.X.JH9RH''(
M\< (A[3&$39K$NA=$2A4'@!85/HEFUN26]-9TV:-69 (W233  XY#ZW'YP^.
M:B6;G6U4"\A53U?"&1M4[FG5\(8M2YIU?"&+4N:] H(>@W'Q"/[.+4N:\B)3
M?6 AN?R@ W\+G%J7-2_*0_J#<?C12'\9<QH'E2YJ($2+]5-$OQ)IA^(N-(\J
M7:IG7QZ#< 'L'CC\.9M2YKT4RA_ G6<1] $ Q_P%YS!LO$\* MX"JD6;L"F4
M42\E,H<F5<G(W3*'PF6,3@,TMD8Z\V'Q<?P5,)(?"L=?6>I18],C:8@BG \M
MV*IY1R(A^U\EB540,/PY7?/B'! 2?D^FIB%SS(%6C].6S@ "OU*S3QAY '+U
M,D'&B(_5-YJXF6,3U_5#PR'7S)>$26'P?C/"I:8U^L;FI1WFQ9,O1[[!4]J<
M.DR40V&3DQ*(^MXYY1*IQZR\#DA@Y,IO.]OG_)6#-&OU1QJSNJ[5H<1F+;*_
M:#@GTS25NE2"F AXB**#I5)  ]A0 ^7<?;8BP"*TC_+\PX5HDR2!=B%7Y*P*
MQ=PNOX%,S>&][LSA(!(DC$H RBR"'@ ?:#LB2?E@/]124#V9W\?9LJ0>L%C3
MT\_D'XR*YTNX0)]6[MZ/I-<VW+?=\M!5FC-RE5XM4IBF:09E"/%4S<@)',NI
MP\,!B^D$O)*/LSMXVTXD'KN.I(/%N7Q#E\MZYD^?/*"H.E/1S^7G^"M$G^L8
M1$1$PB8QA$1,8QO$QC&'D3&,/B(CXB.=4<JH'E7T\[1Q$=.M $..FQV, 'VA
M[Z!N?A\1X^3/FG=?][G_ ,M/P5ZS9?\ @1_G-^&NF\\U76IBE,4IBE,4J AR
M @/H$!#P]/CX8I6D&ZY@<O8IU_%RD2J*#Q W)3'1Y'W211 ?%1F_0X.4X<@!
MA,0>#%$,LJP8>FJ[*0?15=FQ>51IDJ4Q2JI%Z[0_DG"I _)ZNHO[T_47\&3L
M".-+D5<DIYV3CS"(K<>O@R9OG(/3S\F0,:GSK.HU-6F6#THHR# JZ8AP8JZ+
M=XEP(?D+E_6QT>'A6=7GSK&UZCKM^?S?LEK'N##R"\>9W$+@;V@=DHB0!Y^#
M(G'/YOR5+J>FIJ525;@'V%?+7'E+QT(+2;>;;%]@>3()J&Z?@ZLUF#X;UGJ&
MIAF&P6X\DL%7G">CIF:ZHS5,'L%>+7 O4/M N9"S+P1R/CI=3S6J<75R;\^]
MTJ"D _+A;,JS./PE;R+;@.?9U9M$^:IX-?X;?142L)YBI?V^HD _:%'NS+CT
MG9)QDRB'Q"V<E5,4/;QDQFY(/K*I_=Z#4>E$>1-ZD_I=5B^#IS.Q1O9*U:81
M OYRB*"J?A[<G]XD?6C/R_DK'0!Y-4]&ST]<>E*WP!3#Z"NG*K WQ"5VBF(#
MDQN,/BK#Y/IK'L[^!%79%>/<_P!JS,$[Y]'NTS'JB/R>>&;!G8Q\2/BJ)AD]
M%5X1[PP=2:'FE_*1506#YTE3YL&7C-R<?./PBL=*3RKP+%Z'I9NOD04-_!*.
M3$\!^VGRBL=-_(U),BN3ZR#@OYR"H?C)DPZ'DRGXQ]-1TL.8-2Q\/2!@^,I@
M_& 9+X+5BO/64/2.9TFE0\PGY09G2WE2GF$_*#&EO*E1ZR^W\>8TFEZCUA[?
MQXL:7IUA[?QXL:7J'6'M_'C2:7IYA?RL:3Y4O3S"?E!C2WE2]0ZR?E!C2U*]
M<@/HY'X@$?UL6I7LI%#?525-^:DH/XBY$E1S(^45FQ\C4X&CPWB5HZ$/:#=;
MC\) R!FA'-T^45D(Q\#4T(Y^/^U%@#VG " 'QB<Q0#(')QQS=:ETY/(U3K)D
M;_VR[CFO'I%S),40#X^IQR&0.;C#[7S'Z*ST9/*K4O.5EIS[U;*RB(>DI9=!
M<_[QOYHB.:CN... U'XORU(02>BK>-SI10^C8A>F]1(R&EWYA^(R;4"#\^1.
MX@\$1C\?Y#6>AYD"O!;?$J!_8<#>),?VHHP:;%$WP^8_73$ ^3,'+RF'ZN+Y
M;_DITHQ]9J?I#.*@/N6OG!1'ZJDW9&C4 ^$R#--4_P G.-6XN. "CXORTMCC
MF;_+0'>P' <(MJ5"@/K(VD9ER7_/*G21$0^+,''S7XO)8?"?R5GJ1#DM2'+.
MT'+U36Q)!DD ?23C&L7 (@'K %N!5* >WG,KMNHW9F8^@?\ UK!R-/( #TUA
M$@MJA@<Q[!:T9AP'(F+)V)Y-*"/I_M=DHJ'/P=.7XME9OJQ.P]/#\-A5=\U5
MYNH^#]QJQ+;DU7  )(.*<NU"!]$8V#09$'V<.I S97@?;P.=2'8IQ]F-/CX_
M,/QU5?<8O$LW[O36$RW<H_4 Q86K-4/2!5I>06='#U (MV:;4GR>8(9T8MD0
M?QLA/P"WSF_X*JON37M&@ ])^BM5S6Z-CRX&(-@-%HGY 481LA'?1'U>\%*H
M]^7S<Z$.V84?'1J/^4;_ )/FJH^9DO\ :L/1PK5#]TZ?K'<OW3I\X,(B*[UP
ML[6$1#Q_C7!U#_AR^BJBV0 #T<*J,2QNQ)-_&K6IZ,V"HGF:I%/3\G[.9'*H
MFI:+9P\<I-&B*CARN<$T4$BB8ZAQXX  #T 'K'T 'IR,LT6/"TT[!85%R3R'
M[O <S1$>5ECC!+D\ *^O6DJ8XH>LZU7WI>F1*@XD9(OHZ'TJZ6?K)<#X@* +
M@F/PESY'NF<=QSI,NQ",?5!YA0+"_IL+GTFO;X>/[+C+#S8#C\)XFMKYSZLT
MQ2F*4Q2F*4Q2L3L]0864J#CSEXR98E,$=-,>D'C4#CR9!4IOXMXQ4-XG14Y*
M/I#I'QP"0;CG0@'@:U6]7L57$26F*.X8D'@ME@4573 Q/  4D&!0,[C3^/TA
MX,GSZ!S>DO@U:FC_ #:N3&082B(.(YXV?(B'/6V5*KQ^>4!ZTQ^ P .;P0>1
MK601SJLS-8J.3'*L4S-*E&^L/R?BR8Y4J&;:Q4,4J:199/ZBJI/S5#A^ !XP
M ">-+FJHLB]+_M@Y@]AP*?\ A%$<STT\J7-3RS#P/2*1N/:GP/SE,7,=)/"]
M+U.";<#X'3(8/@.<OR<#U!@1+X<ZS<U*4>L7 <.HQLN ^D%$FRW/^RH^C!@!
M\16+U:UHFGNN1<UB).(^D1BV(#\74F4@Y XRGP6LZSYFJ,:I0C>)()%L;VMA
M>M./B%LZ( 9'V,'[(M\-9ZC>=1+5JR0>6SJ?9>SW6QSR(!\0"[.4,P<)/+Y_
MRUD2OYU/""0+X(6^Z(!Z@"S.U"A\CI);GY<C["GD:SU6]%30BI O'D[!M1/9
MYKJ)<?/Y\<(C\N8. /#5^[XJSUCZ*]@RL(?R>Q)0W'^Z(RMN/GY8D',>PL.1
M84ZOH%1%I:?VMY34_KU8KY_G%,$LS[+*/MN/EJ)F7\T5Y%I;@\?TNB3_ -=J
M4://^Q/"Y+V:;PD?Y_IK'54_9'[OBJ'N]Q]5CKQP_=U%'_2208]GG'^M?Y_I
MJ6M/S13R+E_R]5Q__"(?K2N.AD?[5OG^FFM/S13R;E_RY5@^*I<_CE<>SY'^
MU;Y_IIK3\T5Y\FY>NP5HOPEJ*?\ II,<S[/D'_6O\_TU'J)X**A[O;Q]-I@B
M?F5-D _)YC\V/9IO&1_G^FG53\T5 4K47ZUU8D_K=7@R^'^N+*!X8]CF/VW^
M0TZJ_FBI9BV+]OL-1,/_ ",-64/F$4#\9G[N<\V<_$:EU@/ 53*!(#_+[-F0
M]OE'K[8 _P!B8"(9(;6?)S\7Y*Q[1\%4:GN8?VQL>T*>WHL": ?O6C0G&;!M
M!/-9*@<GR(JW+!41Y][MEE>>H04LL\H C\2 D#U9L79B?L-\OY:@<L^8^2K8
MJ.L2>*Q'SX?:NM/.^K_9W(%'G-R[,?\ 9B_I;\M1.7_E?-5(,QJYJ/*-8(L8
M/'DT2@<1]/[9VY-F]=E;\V,?/^*H'+]+5Y'8=69^#&I@7CZO2WBFP?.FFJ;+
M*[/;Q0? /_I4/:QY,?CJA7W$JD @SKR"8!Z/.D#\?!]!NU3#\.6%VI;>L_R#
M\M:SF'P7YZQ]WN.RFY\AC#M_8)DG;DP>'M4=%+^#+"[7C\BSGY!^*M)RI/ "
ML7>;5O*_/3+(M0$>.&<>R2$ X'T&426/^'-Z;=B ?5)^$FM9R9CX_-6'O[G;
MGO(.K+-*%'GDI7ZR!/BZ&QD2\?)EE,3&3ZL:?)]-:6FE8<6-86Z55<FZG*RS
MDP\\F<*J+F'XS*F..65 7@H 'HK2Q)O>K0H  '   !QZ #@/0.3'*HG\=4"G
MI^3]G)BM9Y50G]'ZO;DA6#SJD/ZOE_6R2U"J13]M^KU9D<JP?QU1F QQ A"F
M.<P@!2$*)SF'V%(4!,8?B#)7"J68@*!S/ ?+6+$FPXFMA5'4ETNKLB$;%N$T
MA$H*K*I^*13#QU* 8Q$FP<#Z5CI_  YY_-[FV[$!2$]>?R7ZOQMR^2]=''VG
M*GXR#IQ^9Y_$/IM7>FI^WNOT 49:3*E+6  (<JAP\U!HH' @8ICD+YZI#!R7
M@I$R#X@43 !\\+N.[9FYO?(:T0/!!P4?2?2>/E:O0XN%!AK:(>N>;'F?H'H%
M=%YS:MTQ2F*4Q2F*4Q2F*4Q2F*5@<QK:J3"QGA6)XB2,/5]IP:QHMWU!^V."
M'#=<>?2*B9A'%R.5*Q)S2+S%\FB)^.L3<H<E:6!L9D^$ ]!"R+$#$4-QZSD*
M CFP2N.?&H%%-61>7G8KD+!3IUB0GUWD81.<8!^Z\QD852%_.+SF]<A;>L"*
M@8CX&HL[;6WQO+0F&95N>!;NCF9."C[#).RHF 0'-@DC/(BH%6',5?.04^FF
M8JA!XX.F8#D'P#T&((E'-Z\JC3-M8IBE,R.=*CDZQ3%*9E>=*CDZ4Q2F27E6
M*9*E,4H/H'XA_%FP>%8K"&U]K#O9SC3J#MR:_-M?Q>SU8PS%R1E^ALQ:Y.DL
M7Z<L8H,5'9K'$+I'; ;S4TP*H(=)P'-S(R8WMC?\/U#'?QU!!(1;G;2;W\^%
M:1/$V5[$"?:.F'M;AI+% ;\KZ@1;XZU+J[NQ[?MSPE L&MKZ2Q1NSK]L#5U0
MY@+#&/7%_P!71%BL%WK4O'2<8U>UQY%P-6>/4COB((O6ODJMSJD<H"I=R=LS
M\262'(33)%&DC<01HD(5&!!L;DVX7(-P;6-4\7>-OS4CDQ9-2RR/&O @ZT!9
ME((NM@I/&UQ8B]Q5R1[G]"+2VW8)/9$4$SH?8FOM4[;C#Q\XF\IE\VJ[@(_7
M<,[1-%@:0;VN1L[-LV?,_>&!7!E$U%B&07!//W?FE87$9T9$321GA9D0$N>?
M#2!<@V-N(!J?WI@:YHS*->/(D<@XW5Y" @/#CJ) !%Q>]SP-3-N=S.B]$2S:
M"VK?4ZU+K0#NWNV#.L76WKUVDL'QXQ[?+I^A%;LA*)0VLBDHB>:F181OF(J@
M"P@BL*<<7!S,U#)B1ZTOI!U(NIR+A%ULNMR.(5;FWPB^,S<\# <1Y<FA].JP
M5FTJ#8NVE6T)?AJ:R\^/ VV.C?Z6XN%8H+:R1CJVW:ERNQ:?$M5%')+/2(20
MK<7+62#E$$U(:1CV3RXQ75Y;@R@I/T5BE%$WF!HT.L+Y+*1CQOH9C]EK$Z2.
M8/JMX<P1SX59&1 9EQPP,TB%U'YR@@%@>1 ++X\B#RK!Y/N+T;":P@=U36SJ
MU#ZHM%D@ZA7;Y)G?LX*9L=EN1]?5Z,8*+L2NEAFK>F9HW6\H&ZA0%QYGNW\=
MEE</+?*;"CC9LQ 2R"VH *'8GC;@I!/&_&UM7"M#;C@IBKFO*HQ'8*'-P"2V
M@ <+\6X VMX\N-6G</<OIC15@@*MM&R6" G[6=)"MQ\9K#:]V";?*A+*)0\<
M^H5'M$:O854(%ZJ2-!;W\R#914$?*#KR>)@Y>;&9L50\*BY.N-;#AQ(=U-N(
M]:UN(%[U#,W/!P)5ARV99'/J@1R/<\> *(POP/JWO8$VM6;(7NI25T1UTTE@
M5N[BA1NT$JV=A)-W_P"@DM.JUF/GE?>6:*#<%Y] [46RARO$U"CUI% .<U:&
M6$SMPA$IC)\-8741^CQOR(Y&MRSQ--[,I_7F(2:;&^@MI!^7A;GZ*TG6.ZK1
M5WNT/0ZW:I9W(VJ4ML%1;$[HEYB=;;)L%$(_6N=?UGM*5KK.@7V:K:$0\470
MC9!<RJ3)R=N*Y&ZQB7I-OS88FFD4 *%++J4N@;ZI= 2R!N%B0.8O:]4HMVP)
MYACQ.2SE@C:6".4OJ"2$!'*V-PI-[&U[&K'+=VN@HN=WM6'5P=#9.VV3UM$[
M>@TJW.'D8-QMMW!1]$<PR1V::=LBY*1LC1LX=1QW"+%P8R:YDSEX':NW9I7'
M?3ZF3KZ9N+'I@E@?S2 I(!L2.(J#[QMZR9$1<]7%9!(-)N.I8);\X$L 2+@'
M@;5T"Z2,@JLB< !1)0R1P*(" '3,)3  AX" &#TY24ZE!\#71(L;>-6I;U_J
M]6;!4/RU;E?U_P!G)BHFK8I^KY\GYU U;5?7\0_KY,<ZB:MJOZW[.2%1/XZM
MJOK^3\89,5"K:MZ_U>K)BH_EJVJ_Z;]G)#E435M5]/S_ (\F*@>56U3]G)CG
M4#XU;5?UOV<D.58/XZMR@@ ^(@'A^SFP GE6L\J\I,'KK^UVCA8!_;$2/T>G
M\L0 @?/E>7-P\;CD2QI\+"_R<_FK8D$\I_5HQ^(UE<-J^Z6 Y2Q\.Y4*/I,F
MBLY  'CZQFZ:B)./W1R@&<B;NC;(;B,O*W^2+#Y6M^ U;CVG+?ZVE!Z3<_(+
MUNRN]JE@>B16>>(QZ0])C)J+%%3CPY &[(RYA'X#+ICG#R.[<Q_5Q8TC'F?6
M/XA\QKH1;- O&9F8^C@/QFNB:IV^4*M 115J:6<EXZC+ #9N80] BBB85U Y
M]2BR@#[,\]DYV9F&^5([CR)X?(.'S5THL>"#^)15/F.?R\ZW6T9M&"!&K%JW
M9MDPX3;M44T$2?FII%*0.>/9E6MU5.*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F
M*59I*NP,R4Q96&C)#J#@3.V3=93_ #JITQ4*/P@(#BE84XU'3CF\R/3E()3T
M@:&EGC8H#[015.X0#Q]0%XS()'(D5BP/.K4KK2Q-@$8F]O3@'U$)R,:2)./4
M KIF;J_@'-HR)A]JH]-/*K<K7-F,OJH56<*'K0<O8M8?\ZNF9 !'X^,V#+D'
M, U$Q+X7J@4<7!F/$A09D>/2I$NV$H3XRD14!0?FS:N8OVE-1,1\#5">WL&P
M],C&V.*,'I!_ ODRE^-1,BA<W#,A/.X^*L&)JF(W.JKCP6=8D-^0N91L?Y07
M33XS8,B$_:%1T/Y5>$)2+<>*$G'K<^CRWK8PC\0 KSFU70G@P^6HD$<P:KRB
M!_$@@</:00,'SE$0S;6*]"4P>D!#XP'%*ADEY5BF2I3%*#Z!^(?Q9L'A6*TF
MSUI+->ZA#?/VC&_HU_B\-=.NX4/>OMX\ZPV\;8C253 40CAARQ3MP@/*P+^\
M&#Z'1R8+$KB3:FP /UIR3(#X6,/2MYWO8^5O35)<5QNPW"XZ7LW3MXW$FN_E
M:UQYWK@O2W8KM;36S.TNWQ5DHRE9HI[R\[CZRV>2A$Y6X1U"W!KS4&R]>&4B
MD22%A>TC9;>OV=)R5F*S*'C52'4,R'S?19>^8^7!F0R*^N0IT&L."EHWD1_(
M!T+H;GB[#A>O/X.P9>%E8<R-'TX]?66YXL$D2-TX<6*N$>]N"J>.GC;-Q=C^
MY)^[;"VAK=:FMK5>.\&G6NQ14I/G9,+UVL)V7MHOD@G*.2,#@QV/K'96F7LO
M M5>LJC5Y(-@5(,E]&6%O.+##%BY0<P1894$"Y3(TS)<>:21RA7/@54_9-1S
M-ARY<B7+QR@DDS0Q%_KP7A?CY.DD190? L/M6KIS9%9WI1=W[YV3JC4<-NZ%
M[AM/ZVHZ3-_LBKZ\5H-TU>GL^)8M[FE;"<S.J;3&;'([75B ?RC)VV=D^SU_
M>4CAR,<X4F#C8V7*T,F-,[?Q;2!ED,;'3H^K(I32NJRD$'4+&NIDQ9\&?D9.
M'"L\>3"B6+JFAH]8&K5SC8/<Z;L"#ZIN*UILOMBW14.VKM.K>@I2!L'<'VKU
M&N:LB;#*RHU6&FJ=<]/FT1MV2;OGH'4;MZ\FZ87"+9+ *CIS5FC7P54+Q>QM
MPPYMSRIMQ5EV_*<N5 +,&27JQ"P\_61R. UD\A53*VK-AVO#BVYE;<<1 @8G
M2"K1]*0W/EPD4'F8P.=7+?\ VAV[:4)HOMWU[,U"C=OFH]/WJNR,]<JFM?RS
MECD];ET'1(MK2HN[465:S%8U_9K%/$FCNCHMI99L)$E%PZDXX&YKBO/N&0LD
MFXS3*P57"Z0'ZS^N5869PD6BP)0>"U/<=FFRX\?;<9DCVV&%E)9==V*=%!H#
M*;JC.^J]@Q'"]9R- WS<J#V(K[&81*6S=.[9HEXWV9M96+QB=>I:7V[KJ<M4
M$];F!*<6M%EL4>_3;)!YZ2+\X' !04#-74P8YLX07.//#(D5U-[/(CA6%O5"
M@%>/#U1YBM_L^?-CX!R0OM4,R/+ZP(]6*1"RGQU$J;#CQ]!K.1UK95.ZJR;;
M<>[(4>5[6J[IUJ^:R"?V^G;D-NW.Y2XIQ@D!1%HW@9=HHBZ$_2=R(DX 2".:
M^LGW<N,O&<99EL1PT]%4''SU W'EQ\:L>S2?>K9AMT#AB.X/'5U68\/*Q%CY
M\*Y;U)H3?;*![0=1;,K.N:W0.S.9B)U#857OSFS2NYY77NM;GJO6ZL#1S56&
M7URQDX^YJ3%A"2>N5DW2'N34'":IW9>KDYN&\N9EX[.TV6MM!33TP[*[ZGU$
M2$%0J:0!;BUN5<G$V_<%CP\/*6)<?"8'6KEC*41HTLND: 0VI]1/'U1>]ZP+
M<?8E=]B6:ZWRN7.HU.Z6?NOCM@/GCM*7?L+=VO/4>W1S;M5V4K-DFX0MR%JT
M&RG((X NS92#<I3* F\<B6UA[S% D<,J,\*XND#AZLPZH$B_Y)64H_(E?#@*
MT9NP3Y,KY$;HD[9@<\R&@/1+1M_E:H@R<P".=F-?2]ZKYZ[A8 $ 6645 !](
M>8<3\#QX<ASG 46 %>G8W-ZLZWK_ %>K-@J'Y:MROZ_[.3%1-6Q3]7SY/SJ!
MJVJ^OXA_7S8.=1-6Y7];,V(YU$_CJV*^OY/ULP98D^NRCX2!^.L:7/($_$:M
MZI##ZA]/KX#U?#QFEMRV^,^O-'^D#^"]2&-D-R1ODKPG$R+P0*U:+KB)O $4
MSK"/R(E4'*S[]M:#^,+'T*Q_$*F,#*;CI ^$BKXUUA>)'I,WKTKT&]!SL'*)
M/'U];DC=/CY<JOW1AK?IQRM\@_&:VKM<Q^LRCY365L>WF\/!(+E!NQ(/I%T]
M:$$.?:1L9\H'S93D[KF_U,*#_.8G\ %;AM*?;=OB 'TUF\;VO (E-*SK8H>'
M45LBZ=C\( 915@3_ $ Y0E[CW63@KH@_R5'X3>MZ[;B+S!8^D_1:MB1/;S1(
M[I,X!\_4*("/)V[1,>/5PV0*XXY_\KG-FS\W(_CYI&^%C;Y!PJRF/!'_ !:*
M/B%;)C*#38CI,QKL84Y>.E5= 'JP"'K!9X+A0!^(0RI6ZLM*4I"@0A2D*4."
ME* %*4/8 !P !BE>L4IBE,4IBE,4IBE,4IBE,4IBE,4IBE,4IBE,4IBE,4IB
ME,4IBE,4IBE6YS#Q#WGWR+CG?/I]Y8ME^?C\U(V*5CCK75%>"(KU6%ZA])D6
M:;8?D%MY0ABE6=74-%/R*$:[8CZA8R\HAQ\0>]F*'S9FY'(FE4HZCAB?VG8+
M@R'U E.&4*'L^BX;JC^')"60<F;Y36-*^0JG-JV0)_:E_LR0>H'*;!X'R]2*
M0CFP9.0.3M4>FGD*E&US;$P_L>_BIQZ >5UD</E%-R4?P9,9N2/M?,/HITT\
MJD&HVPT_Y*U5U</_ #B!52$?E17-DAG9/F/DK'22I8U'9A 'B2IB_P"<WE41
M']Z0Q0R8W'('@OR?EK'13TU(&M;.)_M>FK_FO95+GY#(#FS[TG\53Y_IK'07
MS-2AA-GD_P#0=65_,F79/X: 9G[UE_,7Y33H+YFO/V7LT/35H$WYE@$/X:09
M+[VD_,7Y36.@/.H?9VR_74(D?S;&A_IB9G[W?_9CY3]%.@/,T^S]D_W'1O\
M^9&G_P G,_>[_P"S'RGZ*= >=1^S]E?W'1@?'8VHA^ F9^^'_P!F/E_)3H#S
MKP:*V6?_ -4X8OQV%,1_ 3C'WS(/]6ORGZ*Q[./,U3FKVRU/_5R!)\<Z(_P4
MQS/WU*.4:?*:Q[,/,U*&H;*4'QB:TGSS]:7<FXY_,;CC[[G\(T^4T]E7S->?
MT V,K]8E41Y]KV14X_>M?''WYE>"1_/]-/94\S0-7WU7Z\C54>?2 !)JC^%N
M4,C]^9G@(_D/TUCV2+Q+?+7H-0V]0?XZQP20#Z?)C72OQ\>8HED3O>?X%!^]
MK/LD/I^6IY-)RY^/>+@B7UC[O!E'Q^ 5'P9 [QN)_P!8!\"K]%9]E@\OG-5)
M-%HB(>\6V34#U@C'LT/FZCK\9K.Z;BW^N?XK#\ J7L\'YHJX):+K(?VS+V%S
M[>'3-$!^0C$1 /ES4V=FO]::0_OC4A#".2K\E7-#2M$2$!4:23KC_=$J[X'X
MP0.@&:&EE;ZS,?A)/XZF%4<@/DJ]H:NH+?@25EBH(<>+@[IT(\>WWE=4!S78
M5FL@;5:LLN/=:]"MQ+Z#)1C(I@_SX(]7X<S2KVFDFD7H23(F4/05,A2%^8H
M&*5[Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q
M2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q
M2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q
M2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q
M2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q2F*4Q
-2F*4Q2F*4Q2F*5__V0$!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>16
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623944134392">
<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, 2021 </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 " 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 INC<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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 " 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 " 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 " 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="re">
<td class="pl " 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="ro">
<td class="pl " 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,494,658<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_DocumentType', window );">Document Type</a></td>
<td class="text">40-F<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_DocumentPeriodEndDate', window );">Document Period End Date</a></td>
<td class="text">Jan. 31,  2021<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentFiscalYearFocus', window );">Document Fiscal Year Focus</a></td>
<td class="text">2021<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_DocumentFiscalPeriodFocus', window );">Document Fiscal Period Focus</a></td>
<td class="text">FY<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_AmendmentFlag', window );">Amendment Flag</a></td>
<td class="text">false<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AmendmentFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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_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_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 CCYY 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>The end date of the period reflected on the cover page if a periodic report. For all other reports and registration statements containing historical data, it is the date up through which that historical data is presented.  If there is no historical data in the report, use the filing date. The format of the date is CCYY-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_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_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 Regulation 12B<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 Regulation 12B<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_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 Regulation 12B<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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>17
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623848753544">
<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, 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_AssetsCurrentAbstract', window );"><strong>CURRENT ASSETS</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash</a></td>
<td class="nump">$ 133,661<span></span>
</td>
<td class="nump">$ 44,403<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 " 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">37,206<span></span>
</td>
<td class="nump">35,118<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_OtherReceivablesNetCurrent', window );">Other (Note 6)</a></td>
<td class="nump">14,830<span></span>
</td>
<td class="nump">7,294<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_PrepaidExpenseAndOtherAssetsCurrent', window );">Prepaid expenses and other</a></td>
<td class="nump">16,939<span></span>
</td>
<td class="nump">12,984<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_InventoryNet', window );">Inventory (Note 7)</a></td>
<td class="nump">429<span></span>
</td>
<td class="nump">411<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " 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">203,065<span></span>
</td>
<td class="nump">100,210<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherAssetsNoncurrent', window );">OTHER LONG-TERM ASSETS (Note 19)</a></td>
<td class="nump">15,550<span></span>
</td>
<td class="nump">13,520<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_PropertyPlantAndEquipmentNet', window );">PROPERTY AND EQUIPMENT, NET (Note 8)</a></td>
<td class="nump">12,089<span></span>
</td>
<td class="nump">13,731<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_OperatingLeaseRightOfUseAsset', window );">RIGHT-OF-USE ASSETS (Note 13)</a></td>
<td class="nump">12,165<span></span>
</td>
<td class="nump">12,877<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_DeferredIncomeTaxAssetsNet', window );">DEFERRED INCOME TAXES</a></td>
<td class="nump">15,216<span></span>
</td>
<td class="nump">21,602<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_IntangibleAssetsNetExcludingGoodwill', window );">INTANGIBLE ASSETS, NET (Note 9)</a></td>
<td class="nump">239,992<span></span>
</td>
<td class="nump">256,956<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_Goodwill', window );">GOODWILL (Note 10)</a></td>
<td class="nump">565,177<span></span>
</td>
<td class="nump">523,690<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " 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,063,254<span></span>
</td>
<td class="nump">942,586<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 " 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">7,955<span></span>
</td>
<td class="nump">7,667<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_AccruedLiabilitiesCurrent', window );">Accrued liabilities (Note 11)</a></td>
<td class="nump">38,879<span></span>
</td>
<td class="nump">34,876<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_OperatingLeaseLiabilityCurrent', window );">Lease obligations (Note 13)</a></td>
<td class="nump">4,168<span></span>
</td>
<td class="nump">3,928<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_AccruedIncomeTaxesCurrent', window );">Income taxes payable</a></td>
<td class="nump">3,383<span></span>
</td>
<td class="nump">1,329<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_ContractWithCustomerLiabilityCurrent', window );">Deferred revenue (Note 19)</a></td>
<td class="nump">49,878<span></span>
</td>
<td class="nump">41,143<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " 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">104,263<span></span>
</td>
<td class="nump">88,943<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_LongTermDebtNoncurrent', window );">LONG-TERM DEBT (Note 12)</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <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_OperatingLeaseLiabilityNoncurrent', window );">LEASE OBLIGATIONS (Note 13)</a></td>
<td class="nump">8,895<span></span>
</td>
<td class="nump">9,477<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_DeferredRevenueNoncurrent', window );">DEFERRED REVENUE (Note 19)</a></td>
<td class="nump">1,413<span></span>
</td>
<td class="nump">920<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_AccruedIncomeTaxesNoncurrent', window );">INCOME TAXES PAYABLE</a></td>
<td class="nump">8,230<span></span>
</td>
<td class="nump">6,470<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_DeferredIncomeTaxLiabilitiesNet', window );">DEFERRED INCOME TAXES</a></td>
<td class="nump">29,385<span></span>
</td>
<td class="nump">15,067<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " 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">152,186<span></span>
</td>
<td class="nump">120,877<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_CommitmentsAndContingencies', window );">COMMITMENTS, CONTINGENCIES AND GUARANTEES (Note 14)</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="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&#8217; 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 " 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 &#8211; unlimited shares authorized; Shares issued and outstanding totaled 84,494,658 at January 31, 2021 (January 31, 2020 &#8211; 84,156,316)</a></td>
<td class="nump">531,825<span></span>
</td>
<td class="nump">524,154<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_AdditionalPaidInCapitalCommonStock', window );">Additional paid-in capital</a></td>
<td class="nump">464,102<span></span>
</td>
<td class="nump">459,269<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_AccumulatedOtherComprehensiveIncomeLossNetOfTax', window );">Accumulated other comprehensive loss</a></td>
<td class="num">(1,189)<span></span>
</td>
<td class="num">(25,944)<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_RetainedEarningsAccumulatedDeficit', window );">Accumulated deficit</a></td>
<td class="num">(83,670)<span></span>
</td>
<td class="num">(135,770)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " 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">911,068<span></span>
</td>
<td class="nump">821,709<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " 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,063,254<span></span>
</td>
<td class="nump">$ 942,586<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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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=121593590&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=121566466&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=121593590&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=121641772&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=121641772&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=121370832&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=121370832&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=121641772&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/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 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 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=75031198&amp;loc=d3e14064-108612<br><br>Reference 4: 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=121559654&amp;loc=d3e5710-111685<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 (a)<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 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&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 22<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8736-108599<br><br>Reference 8: 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 9: 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 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 30<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&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=121566466&amp;loc=d3e6801-107765<br><br>Reference 2: 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=75031198&amp;loc=d3e14064-108612<br><br>Reference 3: 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 4: 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 5: 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=121559654&amp;loc=d3e5710-111685<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.9)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 7: 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 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 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=121566466&amp;loc=d3e6676-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_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=121586364&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=121566466&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_CommitmentsAndContingencies">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur.</p></div>
<a href="javascript:void(0);" onclick="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.25)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03.(a),19)<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03.17)<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 450<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=121557415&amp;loc=d3e14326-108349<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingencies</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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://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=121556615&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=121556615&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=121604090&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=120406818&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=120406818&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=120406818&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=120406818&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://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=121566466&amp;loc=d3e6676-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.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://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 2: 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=75031198&amp;loc=d3e14064-108612<br><br>Reference 3: 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=121559654&amp;loc=d3e5710-111685<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.19-26)<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 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=121559654&amp;loc=d3e5710-111685<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/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=120311839&amp;loc=d3e8906-108599<br><br>Reference 8: 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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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://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 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)(25))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br><br>Reference 4: 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 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(32))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 6: 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=75031198&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/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=121559654&amp;loc=d3e5710-111685<br><br>Reference 2: 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=75031198&amp;loc=d3e14064-108612<br><br>Reference 3: 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 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(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<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.21)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 6: 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=121559654&amp;loc=d3e5710-111685<br><br>Reference 7: 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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_LongTermDebtNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 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.</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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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=121603541&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=121603541&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=121603541&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=121566466&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://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_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/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 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)(23)(a)(4))<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 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=121370832&amp;loc=SL117420844-207641<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 S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=121370832&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://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=27010918&amp;loc=d3e74512-122707<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(31))<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 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 6: 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=75031198&amp;loc=d3e14064-108612<br><br>Reference 7: 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>18
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623856222680">
<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, 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_CommonStockSharesIssued', window );">Common shares, shares issued (in shares)</a></td>
<td class="nump">84,494,658<span></span>
</td>
<td class="nump">84,156,316<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_CommonStockSharesOutstanding', window );">Common shares, shares outstanding (in shares)</a></td>
<td class="nump">84,494,658<span></span>
</td>
<td class="nump">84,156,316<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=109259400&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>19
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623849861448">
<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, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 2019</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_RevenueFromContractWithCustomerIncludingAssessedTax', window );">REVENUES</a></td>
<td class="nump">$ 348,664<span></span>
</td>
<td class="nump">$ 325,791<span></span>
</td>
<td class="nump">$ 275,171<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_CostOfGoodsAndServicesSold', window );">COST OF REVENUES</a></td>
<td class="nump">89,910<span></span>
</td>
<td class="nump">85,721<span></span>
</td>
<td class="nump">74,994<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " 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">258,754<span></span>
</td>
<td class="nump">240,070<span></span>
</td>
<td class="nump">200,177<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 " 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">38,785<span></span>
</td>
<td class="nump">40,389<span></span>
</td>
<td class="nump">36,873<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_ResearchAndDevelopmentExpense', window );">Research and development</a></td>
<td class="nump">54,066<span></span>
</td>
<td class="nump">53,513<span></span>
</td>
<td class="nump">47,872<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_GeneralAndAdministrativeExpense', window );">General and administrative</a></td>
<td class="nump">36,267<span></span>
</td>
<td class="nump">34,628<span></span>
</td>
<td class="nump">30,012<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_OtherNonoperatingExpense', window );">Other charges (Note 20)</a></td>
<td class="nump">2,335<span></span>
</td>
<td class="nump">3,797<span></span>
</td>
<td class="nump">3,798<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_AmortizationOfIntangibleAssets', window );">Amortization of intangible assets</a></td>
<td class="nump">55,905<span></span>
</td>
<td class="nump">55,485<span></span>
</td>
<td class="nump">40,179<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " 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">187,358<span></span>
</td>
<td class="nump">187,812<span></span>
</td>
<td class="nump">158,734<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_OperatingIncomeLoss', window );">INCOME FROM OPERATIONS</a></td>
<td class="nump">71,396<span></span>
</td>
<td class="nump">52,258<span></span>
</td>
<td class="nump">41,443<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_InterestExpense', window );">INTEREST EXPENSE</a></td>
<td class="num">(1,186)<span></span>
</td>
<td class="num">(4,416)<span></span>
</td>
<td class="num">(2,128)<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_InvestmentIncomeNet', window );">INVESTMENT INCOME</a></td>
<td class="nump">159<span></span>
</td>
<td class="nump">193<span></span>
</td>
<td class="nump">195<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments', window );">INCOME BEFORE INCOME TAXES</a></td>
<td class="nump">70,369<span></span>
</td>
<td class="nump">48,033<span></span>
</td>
<td class="nump">39,510<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 " 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">3,746<span></span>
</td>
<td class="nump">5,295<span></span>
</td>
<td class="nump">6,042<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_DeferredIncomeTaxExpenseBenefit', window );">Deferred</a></td>
<td class="nump">14,523<span></span>
</td>
<td class="nump">5,743<span></span>
</td>
<td class="nump">2,191<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " 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">18,269<span></span>
</td>
<td class="nump">11,038<span></span>
</td>
<td class="nump">8,233<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " 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">$ 52,100<span></span>
</td>
<td class="nump">$ 36,997<span></span>
</td>
<td class="nump">$ 31,277<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</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 " 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">$ 0.62<span></span>
</td>
<td class="nump">$ 0.45<span></span>
</td>
<td class="nump">$ 0.41<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_EarningsPerShareDiluted', window );">Diluted (in dollars per share)</a></td>
<td class="nump">$ 0.61<span></span>
</td>
<td class="nump">$ 0.45<span></span>
</td>
<td class="nump">$ 0.40<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 " 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,360<span></span>
</td>
<td class="nump">81,659<span></span>
</td>
<td class="nump">76,832<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_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted (in shares)</a></td>
<td class="nump">85,756<span></span>
</td>
<td class="nump">82,867<span></span>
</td>
<td class="nump">77,791<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=121586364&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=120395209&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=116825942&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 9<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32639-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 S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.2)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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=116825942&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=116825942&amp;loc=d3e330036-122817<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<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 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=116825942&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=121586364&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=84230637&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 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22583-107794<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 11<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-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 45<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=d3e1448-109256<br><br>Reference 4: 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=109234566&amp;loc=d3e22595-107794<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 (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&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 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=d3e1337-109256<br><br>Reference 7: 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=120380238&amp;loc=d3e4984-109258<br><br>Reference 8: 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 9: 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=120380238&amp;loc=d3e3842-109258<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 7<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22644-107794<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=6371337&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 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=120395209&amp;loc=SL114868664-224227<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 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=d3e1252-109256<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 60B<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=SL5780133-109256<br><br>Reference 15: 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>num: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=120380238&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=109234566&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=120380238&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=121326447&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=109234566&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=109234566&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=109234566&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=121326447&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 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 10: 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=6371337&amp;loc=d3e3550-109257<br><br>Reference 11: 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 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 11<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-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 45<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=d3e1337-109256<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=120395209&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>num: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=120395209&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/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 2: 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=120311839&amp;loc=d3e8924-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 30<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8906-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(g)(1)(ii))<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 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8736-108599<br><br>Reference 6: 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=75031198&amp;loc=d3e14064-108612<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 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<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.1,2)<br> -URI http://asc.fasb.org/extlink&amp;oid=120395209&amp;loc=SL114868664-224227<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 (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 before deduction of income tax expense (benefit) and income (loss) attributable to noncontrolling interest, and addition of income (loss) from equity method investments.</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 (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&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 32<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&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 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8906-108599<br><br>Reference 4: 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=120311839&amp;loc=d3e8924-108599<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<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)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<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> -URI http://asc.fasb.org/extlink&amp;oid=120311839&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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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=116825942&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=84230637&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=120311839&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=109234566&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=120385591&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=109234566&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=119993939&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=120311839&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=120395209&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=120395209&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=120395209&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://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=121641772&amp;loc=SL7669619-108580<br><br>Reference 2: 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=120311839&amp;loc=d3e8924-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 11<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<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 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 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 (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&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 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&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 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 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 4<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22595-107794<br><br>Reference 9: 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=121641772&amp;loc=SL7669625-108580<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=120311839&amp;loc=d3e8736-108599<br><br>Reference 11: 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 12: 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=120395209&amp;loc=SL114868664-224227<br><br>Reference 13: 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=121586364&amp;loc=d3e3602-108585<br><br>Reference 14: 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=109234566&amp;loc=d3e22499-107794<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=109234566&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 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=75031198&amp;loc=d3e14064-108612<br><br>Reference 17: 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=120311839&amp;loc=d3e8906-108599<br><br>Reference 18: 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=109234566&amp;loc=d3e22583-107794<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://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=121326447&amp;loc=SL5780133-109256<br><br>Reference 21: 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 22: 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=120311839&amp;loc=d3e8933-108599<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=109234566&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_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=120311839&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=120311839&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=120311839&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=120311839&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=120311839&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=120395209&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://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 2: 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=120311839&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=121604090&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=120311839&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=120311839&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=120311839&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=120311839&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=120311839&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=121604090&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=120311839&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=120311839&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=6371337&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=121326447&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=6371337&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=121326447&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>20
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623847341320">
<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, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 2019</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_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">$ 52,100<span></span>
</td>
<td class="nump">$ 36,997<span></span>
</td>
<td class="nump">$ 31,277<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 " 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 $290 for the year ended January 31, 2021 (January 31, 2020 &#8211; ($132); January 31, 2019 &#8211; ($44))</a></td>
<td class="nump">24,755<span></span>
</td>
<td class="num">(743)<span></span>
</td>
<td class="num">(9,949)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " 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="nump">24,755<span></span>
</td>
<td class="num">(743)<span></span>
</td>
<td class="num">(9,949)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " 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">$ 76,855<span></span>
</td>
<td class="nump">$ 36,254<span></span>
</td>
<td class="nump">$ 21,328<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=120395209&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=121641772&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=121641772&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=121641772&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://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=121641772&amp;loc=SL7669619-108580<br><br>Reference 2: 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=120311839&amp;loc=d3e8924-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 11<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<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 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 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 (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&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 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&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 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 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 4<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22595-107794<br><br>Reference 9: 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=121641772&amp;loc=SL7669625-108580<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=120311839&amp;loc=d3e8736-108599<br><br>Reference 11: 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 12: 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=120395209&amp;loc=SL114868664-224227<br><br>Reference 13: 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=121586364&amp;loc=d3e3602-108585<br><br>Reference 14: 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=109234566&amp;loc=d3e22499-107794<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=109234566&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 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=75031198&amp;loc=d3e14064-108612<br><br>Reference 17: 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=120311839&amp;loc=d3e8906-108599<br><br>Reference 18: 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=109234566&amp;loc=d3e22583-107794<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://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=121326447&amp;loc=SL5780133-109256<br><br>Reference 21: 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 22: 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=120311839&amp;loc=d3e8933-108599<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=109234566&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_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=121641772&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=121641772&amp;loc=SL7669619-108580<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=109259400&amp;loc=d3e21463-112644<br><br>Reference 3: 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 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 (SX 210.5-03(21))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395209&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 220<br> -SubTopic 10<br> -Section 55<br> -Paragraph 15<br> -URI http://asc.fasb.org/extlink&amp;oid=121640130&amp;loc=d3e1436-108581<br><br>Reference 6: 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 7: 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 8: 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=121641772&amp;loc=SL7669625-108580<br><br>Reference 9: 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 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(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>21
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623848227416">
<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, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 2019</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_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax', window );">Foreign currency translation adjustment, income tax expense (recovery)</a></td>
<td class="nump">$ 290<span></span>
</td>
<td class="num">$ (132)<span></span>
</td>
<td class="num">$ (44)<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=121641772&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=109240200&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=121641772&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>22
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623848547032">
<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>
<div>Cumulative Effect, Period of Adoption, Adjustment [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 " 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, 2018</a></td>
<td class="nump">$ 274,536<span></span>
</td>
<td class="nump">$ 451,151<span></span>
</td>
<td class="num">$ (15,252)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (211,623)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Stock options and share units exercised</a></td>
<td class="nump">681<span></span>
</td>
<td class="num">(139)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueNewIssues', window );">Issuance of common shares, net of issuance costs (Note 15)</a></td>
<td class="text"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueAcquisitions', window );">Acquisitions (Note 3)</a></td>
<td class="nump">1,536<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">3,710<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">(9,949)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="text">&#160;<span></span>
</td>
<td class="nump">31,277<span></span>
</td>
<td class="nump">$ 31,277<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " 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="nump">$ 7,579<span></span>
</td>
<td class="num">(172,767)<span></span>
</td>
<td class="nump">533,507<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_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>
<td class="text">&#160;<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_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>
<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_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>
<td class="text">&#160;<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_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>
<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_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>
<td class="text">&#160;<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_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="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 " 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="text"> <span></span>
</td>
<td class="num">(135,770)<span></span>
</td>
<td class="nump">821,709<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_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>
<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_us-gaap_StockIssuedDuringPeriodValueNewIssues', window );">Issuance of common shares, net of issuance costs (Note 15)</a></td>
<td class="text"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueAcquisitions', window );">Acquisitions (Note 3)</a></td>
<td class="text"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
<td class="text">&#160;<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_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>
<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_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="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 " 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="text"> <span></span>
</td>
<td class="num">$ (83,670)<span></span>
</td>
<td class="nump">$ 911,068<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=120383193&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=120383193&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=121326096&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://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=121641772&amp;loc=SL7669619-108580<br><br>Reference 2: 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=120311839&amp;loc=d3e8924-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 11<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<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 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 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 (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&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 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&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 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 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 4<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22595-107794<br><br>Reference 9: 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=121641772&amp;loc=SL7669625-108580<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=120311839&amp;loc=d3e8736-108599<br><br>Reference 11: 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 12: 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=120395209&amp;loc=SL114868664-224227<br><br>Reference 13: 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=121586364&amp;loc=d3e3602-108585<br><br>Reference 14: 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=109234566&amp;loc=d3e22499-107794<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=109234566&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 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=75031198&amp;loc=d3e14064-108612<br><br>Reference 17: 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=120311839&amp;loc=d3e8906-108599<br><br>Reference 18: 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=109234566&amp;loc=d3e22583-107794<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://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=121326447&amp;loc=SL5780133-109256<br><br>Reference 21: 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 22: 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=120311839&amp;loc=d3e8933-108599<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=109234566&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_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=121641772&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=108774443&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=121641772&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=108774443&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=109259400&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=109259400&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=109259400&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://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=27010918&amp;loc=d3e74512-122707<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(31))<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 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 6: 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=75031198&amp;loc=d3e14064-108612<br><br>Reference 7: 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>23
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623848583048">
<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, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 2019</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 " 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">$ 52,100<span></span>
</td>
<td class="nump">$ 36,997<span></span>
</td>
<td class="nump">$ 31,277<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 " 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,757<span></span>
</td>
<td class="nump">6,037<span></span>
</td>
<td class="nump">4,544<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_AmortizationOfIntangibleAssets', window );">Amortization of intangible assets</a></td>
<td class="nump">55,905<span></span>
</td>
<td class="nump">55,485<span></span>
</td>
<td class="nump">40,179<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_ShareBasedCompensation', window );">Stock-based compensation expense (Note 17)</a></td>
<td class="nump">6,313<span></span>
</td>
<td class="nump">4,909<span></span>
</td>
<td class="nump">3,710<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_OtherNoncashIncomeExpense', window );">Other non-cash operating activities</a></td>
<td class="nump">207<span></span>
</td>
<td class="nump">337<span></span>
</td>
<td class="nump">71<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_DeferredIncomeTaxExpenseBenefit', window );">Deferred tax expense</a></td>
<td class="nump">14,523<span></span>
</td>
<td class="nump">5,743<span></span>
</td>
<td class="nump">2,191<span></span>
</td>
</tr>
<tr class="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_DeferredTaxCharges', window );">Deferred tax charge</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="num">(49)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOperatingCapital', window );">Changes in operating assets and liabilities (Note 21)</a></td>
<td class="num">(3,575)<span></span>
</td>
<td class="num">(5,256)<span></span>
</td>
<td class="num">(3,849)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " 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">131,230<span></span>
</td>
<td class="nump">104,252<span></span>
</td>
<td class="nump">78,074<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_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="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_PaymentsToAcquirePropertyPlantAndEquipment', window );">Additions to property and equipment</a></td>
<td class="num">(3,759)<span></span>
</td>
<td class="num">(4,900)<span></span>
</td>
<td class="num">(5,244)<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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Acquisition of subsidiaries, net of cash acquired (Note 3)</a></td>
<td class="num">(48,403)<span></span>
</td>
<td class="num">(292,053)<span></span>
</td>
<td class="num">(67,932)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " 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">(52,162)<span></span>
</td>
<td class="num">(296,953)<span></span>
</td>
<td class="num">(73,176)<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_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="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_ProceedsFromLinesOfCredit', window );">Proceeds from borrowing on the credit facility</a></td>
<td class="nump">10,196<span></span>
</td>
<td class="nump">297,015<span></span>
</td>
<td class="nump">68,468<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_RepaymentsOfDebt', window );">Credit facility repayments</a></td>
<td class="num">(10,793)<span></span>
</td>
<td class="num">(322,634)<span></span>
</td>
<td class="num">(78,659)<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_PaymentsOfDebtIssuanceCosts', window );">Payment of debt issuance costs</a></td>
<td class="num">(40)<span></span>
</td>
<td class="num">(1,400)<span></span>
</td>
<td class="text"> <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_ProceedsFromIssuanceOfCommonStock', window );">Issuance of common shares for cash, net of issuance costs (Note 15)</a></td>
<td class="nump">6,194<span></span>
</td>
<td class="nump">237,973<span></span>
</td>
<td class="nump">345<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_PaymentForContingentConsiderationLiabilityFinancingActivities', window );">Payment of contingent consideration</a></td>
<td class="text"> <span></span>
</td>
<td class="num">(785)<span></span>
</td>
<td class="num">(1,531)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " 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 (used in) financing activities</a></td>
<td class="nump">5,557<span></span>
</td>
<td class="nump">210,169<span></span>
</td>
<td class="num">(11,377)<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_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations', window );">Effect of foreign exchange rate changes on cash</a></td>
<td class="nump">4,633<span></span>
</td>
<td class="num">(363)<span></span>
</td>
<td class="num">(1,368)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect', window );">Increase (decrease) in cash</a></td>
<td class="nump">89,258<span></span>
</td>
<td class="nump">17,105<span></span>
</td>
<td class="num">(7,847)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations', window );">Cash, beginning of year</a></td>
<td class="nump">44,403<span></span>
</td>
<td class="nump">27,298<span></span>
</td>
<td class="nump">35,145<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_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations', window );">Cash, end 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 " 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="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_InterestPaidNet', window );">Cash paid during the year for interest</a></td>
<td class="nump">89<span></span>
</td>
<td class="nump">3,516<span></span>
</td>
<td class="nump">1,712<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_IncomeTaxesPaidNet', window );">Cash paid during the year for income taxes</a></td>
<td class="nump">$ 8,214<span></span>
</td>
<td class="nump">$ 8,946<span></span>
</td>
<td class="nump">$ 7,862<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dsgx_DeferredTaxCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 amount of deferred tax charges recorded 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_DeferredTaxCharges</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_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=121586364&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=121583591&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=121586364&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=121586364&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=98513438&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=121586364&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=116825942&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=116825942&amp;loc=d3e330036-122817<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<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 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=116825942&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=121586364&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=84230637&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=121586364&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=98513438&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=121583591&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=121586364&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=121583591&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=121586364&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=121586364&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=121586364&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=121586364&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=121586364&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=121586364&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=121586364&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://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=121641772&amp;loc=SL7669619-108580<br><br>Reference 2: 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=120311839&amp;loc=d3e8924-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 11<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<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 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 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 (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&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 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&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 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 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 4<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22595-107794<br><br>Reference 9: 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=121641772&amp;loc=SL7669625-108580<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=120311839&amp;loc=d3e8736-108599<br><br>Reference 11: 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 12: 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=120395209&amp;loc=SL114868664-224227<br><br>Reference 13: 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=121586364&amp;loc=d3e3602-108585<br><br>Reference 14: 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=109234566&amp;loc=d3e22499-107794<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=109234566&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 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=75031198&amp;loc=d3e14064-108612<br><br>Reference 17: 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=120311839&amp;loc=d3e8906-108599<br><br>Reference 18: 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=109234566&amp;loc=d3e22583-107794<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://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=121326447&amp;loc=SL5780133-109256<br><br>Reference 21: 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 22: 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=120311839&amp;loc=d3e8933-108599<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=109234566&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_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=121586364&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=121586364&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=121586364&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=121586364&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=121586364&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=121586364&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=121586364&amp;loc=d3e3255-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<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=121586364&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=121586364&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>24
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623848167064">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 1 - 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, 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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock', window );">Business Description and Basis of Presentation [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;">Note <div style="display: inline; font-style: italic; font: inherit;">1</div> - Description of the Business</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">The Descartes Systems Group 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;&nbsp;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 <div style="display: inline; font-style: italic; font: inherit;">third</div>-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.</div></div><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>nonnum: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>25
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623848225736">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 2 - Basis of Presentation<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SignificantAccountingPoliciesTextBlock', window );">Significant Accounting Policies [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;">Note <div style="display: inline; font-style: italic; font: inherit;">2</div> &#x2013;Basis of Presentation</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style="display: inline; font-style: italic; font: inherit;"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 and regulations of the Canadian Securities Administrators and the US Securities and Exchange Commission (&#x201c;SEC&#x201d;) for the preparation of consolidated financial statements.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">The world continues to experience a global pandemic related to the spread of the COVID-<div style="display: inline; font-style: italic; font: inherit;">19</div> 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 <div style="display: inline; font-style: italic; font: inherit;"> may </div>be impacted by the Pandemic include, but are <div style="display: inline; font-style: italic; font: inherit;">not</div> limited to; revenue recognition, impairment of goodwill and intangible assets and provisions for credit losses.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Our fiscal year commences on <div style="display: inline; font-style: italic; font: inherit;"> February 1</div><div style="display: inline; bottom:.33em; font-size: 82%; position: relative; vertical-align: baseline;">st</div> of each year and ends on <div style="display: inline; font-style: italic; font: inherit;"> January 31</div><div style="display: inline; bottom:.33em; font-size: 82%; position: relative; vertical-align: baseline;">st</div> of the following year. Our fiscal year, which ends on <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021, </div>is referred to as the &#x201c;current fiscal year&#x201d;, &#x201c;fiscal <div style="display: inline; font-style: italic; font: inherit;">2021&#x201d;,</div> <div style="display: inline; font-style: italic; font: inherit;">&#x201c;2021&#x201d;</div> or using similar words. Our previous fiscal year, which ended on <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2020, </div>is referred to as the &#x201c;previous fiscal year&#x201d;, &#x201c;fiscal <div style="display: inline; font-style: italic; font: inherit;">2020&#x201d;,</div> <div style="display: inline; font-style: italic; font: inherit;">&#x201c;2020&#x201d;</div> or using similar words. Other fiscal years are referenced by the applicable year during which the fiscal year ends. For example, <div style="display: inline; font-style: italic; font: inherit;">&#x201c;2022&#x201d;</div> refers to the annual period ending <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2022 </div>and the &#x201c;fourth quarter of <div style="display: inline; font-style: italic; font: inherit;">2022&#x201d;</div> refers to the quarter ending <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2022.</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;"></div></div></div> <div style="display: inline; font-style: italic; font: inherit;"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">Basis of consolidation</div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">The consolidated financial statements include the financial statements of Descartes and our wholly-owned subsidiaries. We do <div style="display: inline; font-style: italic; font: inherit;">not</div> have any variable interests in variable interest entities. All intercompany accounts and transactions have been eliminated during consolidation.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <!-- Field: Page; Sequence: 6 -->   <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;"></div></div></div> <div style="display: inline; font-style: italic; font: inherit;"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">Foreign currency translation</div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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' 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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 year ended <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021, </div>foreign currency re-measurement loss of <div style="display: inline; font-style: italic; font: inherit;">$0.8</div> million was included in net income (<div style="display: inline; font-style: italic; font: inherit;"> January 31, 2020 &#x2013; </div>loss of <div style="display: inline; font-style: italic; font: inherit;">$0.6</div> million; <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2019 &#x2013; </div>loss of <div style="display: inline; font-style: italic; font: inherit;">$0.4</div> million).</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;"></div></div></div> <div style="display: inline; font-style: italic; font: inherit;"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">Use of estimates</div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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's best knowledge of current events, actual results <div style="display: inline; font-style: italic; font: inherit;"> may </div>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 <div style="display: inline; font-style: italic; font: inherit;">not</div> readily apparent from other sources.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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'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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;"></div></div></div> <div style="display: inline; font-style: italic; font: inherit;"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">Cash</div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Cash included highly liquid short-term deposits with original maturities of <div style="display: inline; font-style: italic; font: inherit;">three</div> months or less.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;"></div></div></div> <div style="display: inline; font-style: italic; font: inherit;"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">Financial instruments</div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; text-decoration: underline;">Fair value of financial instruments</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">The carrying amounts of the Company's cash, accounts receivable (net), accounts payable, accrued liabilities and income taxes payable approximate their fair value due to their short maturities.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <!-- Field: Page; Sequence: 7 -->   <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; text-decoration: underline;">Derivative instruments</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">We use derivative instruments to manage equity risk relating to our share-based compensation. We account for these instruments in accordance with ASC Topic <div style="display: inline; font-style: italic; font: inherit;">815</div> &#x201c;Derivatives and Hedging&#x201d; (Topic <div style="display: inline; font-style: italic; font: inherit;">815</div>), 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 <div style="display: inline; font-style: italic; font: inherit;">not</div> designate our derivative instruments as hedges and as such the changes in our derivative financial instruments' 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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; text-decoration: underline;">Foreign exchange risk</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;"> may </div>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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; text-decoration: underline;">Interest rate risk</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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's Acceptance (BA); or iii) LIBOR. We are exposed to interest rate fluctuations to the extent that we borrow on our credit facility.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; text-decoration: underline;">Credit risk</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">We do <div style="display: inline; font-style: italic; font: inherit;">not</div> use any type of speculative financial instruments, including but <div style="display: inline; font-style: italic; font: inherit;">not</div> limited to foreign exchange contracts, futures, swaps and option agreements, to manage our foreign exchange or interest rate risks. In addition, we do <div style="display: inline; font-style: italic; font: inherit;">not</div> hold or issue financial instruments for trading purposes.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; text-decoration: underline;">Equity risk</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;">not</div> hold derivatives for speculative purposes.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;"></div></div></div> <div style="display: inline; font-style: italic; font: inherit;"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">Provision for Credit Losses</div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">&nbsp;</div></div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;"></div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;"></div></div></div> <div style="display: inline; font-style: italic; font: inherit;"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">Inventory</div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;">no</div> longer able to sell inventories above cost or at all, we write down inventory to market or excess inventory is written off.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <!-- Field: Page; Sequence: 8 -->   <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;"></div></div></div> <div style="display: inline; font-style: italic; font: inherit;"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">Impairment of long-lived assets</div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;"> may </div>be impairment. Circumstances which could trigger a review include, but are <div style="display: inline; font-style: italic; font: inherit;">not</div> 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 <div style="display: inline; font-style: italic; font: inherit;">not</div> 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. <div style="display: inline; font-style: italic; font: inherit;">No</div> impairment of long-lived assets has been identified or recorded in our consolidated statements of operations for any of the fiscal years presented.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;"></div></div> <div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0"></div> <div style="display: inline; font-style: italic; font: inherit;"><div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0">Goodwill and intangible assets</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;">not</div> subject to amortization.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">We test for impairment of goodwill at least annually on <div style="display: inline; font-style: italic; font: inherit;"> October 31</div><div style="display: inline; bottom:.33em; font-size: 82%; position: relative; vertical-align: baseline;">st</div> of each year and at any other time if any event occurs or circumstances change that would more likely than <div style="display: inline; font-style: italic; font: inherit;">not</div> reduce our fair value below our reporting unit'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 <div style="display: inline; font-style: italic; font: inherit;">third</div> quarter of <div style="display: inline; font-style: italic; font: inherit;">2021</div> and concluded that it was more likely than <div style="display: inline; font-style: italic; font: inherit;">not</div> that the fair value of the goodwill was greater than the carrying value. As a result, <div style="display: inline; font-style: italic; font: inherit;">no</div> impairment of goodwill was recorded in fiscal <div style="display: inline; font-style: italic; font: inherit;">2021</div> (<div style="display: inline; font-style: italic; font: inherit;"><div style="display: inline; font-style: italic; font: inherit;">no</div></div> impairments were recorded for fiscal <div style="display: inline; font-style: italic; font: inherit;">2020</div> or fiscal <div style="display: inline; font-style: italic; font: inherit;">2019</div>).</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;">not</div> 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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Amortization of our intangible assets is generally recorded at the following rates:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0" align="center">    <tr style="vertical-align: bottom; background-color: White">  <td style="width: 50%; text-align: left">Customer agreements and relationships</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 49%; text-align: left">Straight-line over <div style="display: inline; font-style: italic; font: inherit;">three</div> to <div style="display: inline; font-style: italic; font: inherit;">twenty</div> years</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left">Existing technologies</td>  <td>&nbsp;</td>  <td style="text-align: left">Straight-line over <div style="display: inline; font-style: italic; font: inherit;">two</div> to <div style="display: inline; font-style: italic; font: inherit;">twelve</div> years</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left">Trade names</td>  <td>&nbsp;</td>  <td style="text-align: left">Straight-line over <div style="display: inline; font-style: italic; font: inherit;">one</div> to <div style="display: inline; font-style: italic; font: inherit;">fifteen</div> years</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left">Non-compete covenants</td>  <td>&nbsp;</td>  <td style="text-align: left">Straight-line over <div style="display: inline; font-style: italic; font: inherit;">two</div> to <div style="display: inline; font-style: italic; font: inherit;">twelve</div> years</td>  </tr>    </table> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify; text-indent: 0.5in">&nbsp;</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify; text-indent: 0.5in"></div> <div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0"></div> <div style="display: inline; font-style: italic; font: inherit;"><div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0">Property and equipment</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Property and equipment is recorded at cost.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Effective <div style="display: inline; font-style: italic; font: inherit;"> February 1, 2020, </div>we changed our accounting method for property &amp; equipment from the declining balance method of depreciation to the straight-line method of depreciation to better reflect the consumption of the assets' 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 <div style="display: inline; font-style: italic; font: inherit;">not</div> have a material impact on our results of operations.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Depreciation of our property and equipment is generally recorded at the following rates:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0" align="center">    <tr style="vertical-align: bottom; background-color: White">  <td style="width: 50%; text-align: left">Computer equipment and software</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 49%; text-align: left">Straight-line over <div style="display: inline; font-style: italic; font: inherit;">1</div> to <div style="display: inline; font-style: italic; font: inherit;">13</div> years</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left">Furniture and fixtures</td>  <td>&nbsp;</td>  <td style="text-align: left">Straight-line over <div style="display: inline; font-style: italic; font: inherit;">3</div> to <div style="display: inline; font-style: italic; font: inherit;">14</div> years</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left">Leasehold improvements</td>  <td>&nbsp;</td>  <td style="text-align: left">Straight-line over lesser of useful life or term of lease</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left">Equipment installed with customers</td>  <td>&nbsp;</td>  <td style="text-align: left">Straight-line over <div style="display: inline; font-style: italic; font: inherit;">3</div> years</td>  </tr>    </table> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div> <!-- Field: Page; Sequence: 9 -->   <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">Fully depreciated property and equipment are removed from the balance sheet when they are <div style="display: inline; font-style: italic; font: inherit;">no</div> longer in use.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;"></div></div></div> <div style="display: inline; font-style: italic; font: inherit;"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">Leases</div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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's incremental borrowing rate. As most of our leases do <div style="display: inline; font-style: italic; font: inherit;">not</div> 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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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'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 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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">We have elected to apply the practical expedient <div style="display: inline; font-style: italic; font: inherit;">not</div> to recognize ROU assets and lease liabilities for short-term leases that have a lease term of <div style="display: inline; font-style: italic; font: inherit;">12</div> months or less. The lease payments associated with these leases is recognized as an expense on a straight-line basis over the lease term.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;"></div></div></div> <div style="display: inline; font-style: italic; font: inherit;"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">Revenue recognition</div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <!-- Field: Page; Sequence: 10 -->   <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; text-decoration: underline;">License</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; text-decoration: underline;">Services</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 monthly basis based on the customer usage for that period.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; text-decoration: underline;">Professional Services &amp; Other</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;"> may </div>require judgment. Judgment is also needed in assessing the ability to collect the corresponding receivables.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 have an observable standalone selling price. If the Company does <div style="display: inline; font-style: italic; font: inherit;">not</div> 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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">Costs to obtain a contract with a customer</div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;">four</div> to <div style="display: inline; font-style: italic; font: inherit;">six</div> 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 <div style="display: inline; font-style: italic; font: inherit;">one</div> year or less.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <!-- Field: Page; Sequence: 11 -->   <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">Contract assets and liabilities</div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; color: black">The payment terms and conditions in our customer contracts <div style="display: inline; font-style: italic; font: inherit;"> may </div>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 when or as 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. </div>Contract liabilities primarily relate to the advance consideration received from customers and is presented as deferred revenue. <div style="display: inline; color: black">Deferred revenue results from customer payments in advance of our satisfaction of the associated performance obligation(s) 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.</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"></div> <div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style="display: inline; font-style: italic; font: inherit;"><div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Research and development costs</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">To date, we have <div style="display: inline; font-style: italic; font: inherit;">not</div> 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 <div style="display: inline; font-style: italic; font: inherit;">not</div> been significant.</div> <div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div></div> <div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style="display: inline; font-style: italic; font: inherit;"><div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Stock-based compensation plans</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; text-decoration: underline;">Stock Options</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Employee stock options generally vest over a <div style="display: inline; font-style: italic; font: inherit;">five</div>-year period starting from the grant date and expire <div style="display: inline; font-style: italic; font: inherit;">seven</div> years from the grant date. Non-employee directors' and officers' stock options generally have quarterly vesting over a <div style="display: inline; font-style: italic; font: inherit;">three</div> to <div style="display: inline; font-style: italic; font: inherit;">five</div>-year period. We issue new shares from treasury upon the exercise of a stock option. Forfeitures are accounted for as they occur.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; text-decoration: underline;">Performance &amp; Restricted Share Units</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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;).</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">PSUs vest at the end of a <div style="display: inline; font-style: italic; font: inherit;">three</div>-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 <div style="display: inline; font-style: italic; font: inherit;">five</div> trading 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 <div style="display: inline; font-style: italic; font: inherit;">ten</div> years from the grant date. New shares are issued from treasury upon the redemption of a PSU.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <!-- Field: Page; Sequence: 12 -->   <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">RSUs vest annually over a <div style="display: inline; font-style: italic; font: inherit;">three</div>-year period starting from the grant date and expire <div style="display: inline; font-style: italic; font: inherit;">ten</div> years from the grant date. We issue new shares from treasury upon the redemption of an RSU.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; text-decoration: underline;">Deferred Share Unit Plan</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Our board of directors adopted a deferred share unit plan effective as of <div style="display: inline; font-style: italic; font: inherit;"> June 28, 2004, </div>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 <div style="display: inline; font-style: italic; font: inherit;">five</div> trading days preceding the grant date. The plan allows each director to choose to receive, in the form of DSUs, all, <div style="display: inline; font-style: italic; font: inherit;">none</div> or a percentage of the eligible director'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 <div style="display: inline; font-style: italic; font: inherit;">50%</div> 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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; text-decoration: underline;">Cash-Settled Restricted Share Unit Plan</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Our board of directors adopted a cash-settled restricted share unit plan effective as of <div style="display: inline; font-style: italic; font: inherit;"> May 23, 2007, </div>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 <div style="display: inline; font-style: italic; font: inherit;">five</div> trading days preceding the date of the grant. The CRSUs generally vest based on continued employment and have annual vesting over <div style="display: inline; font-style: italic; font: inherit;">three</div> to <div style="display: inline; font-style: italic; font: inherit;">five</div>-year periods. Vested units are settled in cash based on our common share price when conversion takes place, which is within <div style="display: inline; font-style: italic; font: inherit;">30</div> days following a vesting date and in any event prior to <div style="display: inline; font-style: italic; font: inherit;"> December 31</div><div style="display: inline; bottom:.33em; font-size: 82%; position: relative; vertical-align: baseline;">st</div> of the calendar 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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0"></div> <div style="display: inline; font-style: italic; font: inherit;"><div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0">Business combinations</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">We apply the provisions of ASC Topic <div style="display: inline; font-style: italic; font: inherit;">805,</div> &#x201c;Business Combinations&#x201d; (Topic <div style="display: inline; font-style: italic; font: inherit;">805</div>), 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 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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;"> may </div>be up to <div style="display: inline; font-style: italic; font: inherit;">one</div> year from the acquisition date, we <div style="display: inline; font-style: italic; font: inherit;"> may </div>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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <!-- Field: Page; Sequence: 13 -->   <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;">420,</div> &#x201c;Exit or Disposal Cost Obligations&#x201d; (Topic <div style="display: inline; font-style: italic; font: inherit;">420</div>) and are accounted for separately from the business combination.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">For a given acquisition, we generally identify certain pre-acquisition contingencies as of the acquisition date and <div style="display: inline; font-style: italic; font: inherit;"> may </div>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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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, subsequently, in our results of operations.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;">not</div> exist at the acquisition date, are recorded in our provision for income taxes in our consolidated statement of operations.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0"></div> <div style="display: inline; font-style: italic; font: inherit;"><div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0">Income taxes</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 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 <div style="display: inline; font-style: italic; font: inherit;">not</div> that a deferred tax asset will <div style="display: inline; font-style: italic; font: inherit;">not</div> 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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">We evaluate our uncertain tax positions by using a <div style="display: inline; font-style: italic; font: inherit;">two</div>-step approach to recognize and measure uncertain tax positions and provisions for income taxes.&nbsp;The <div style="display: inline; font-style: italic; font: inherit;">first</div> step is to evaluate the tax position for recognition by determining if the weight of available evidence indicates it is more likely than <div style="display: inline; font-style: italic; font: inherit;">not,</div> 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 <div style="display: inline; font-style: italic; font: inherit;">second</div> 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 <div style="display: inline; font-style: italic; font: inherit;">not</div> to be realized. The tax position is derecognized when it is <div style="display: inline; font-style: italic; font: inherit;">no</div> longer more likely than <div style="display: inline; font-style: italic; font: inherit;">not</div> 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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0"></div> <div style="display: inline; font-style: italic; font: inherit;"><div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0">Earnings per share</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <!-- Field: Page; Sequence: 14 -->   <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0"></div> <div style="display: inline; font-style: italic; font: inherit;"><div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0">Recently adopted accounting pronouncements</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">In <div style="display: inline; font-style: italic; font: inherit;"> May 2014, </div>the FASB issued Accounting Standards Update <div style="display: inline; font-style: italic; font: inherit;">2014</div>-<div style="display: inline; font-style: italic; font: inherit;">09,</div> &#x201c;Revenue from Contracts with Customers&#x201d; (&#x201c;ASC <div style="display: inline; font-style: italic; font: inherit;">606&#x201d;</div>). ASC <div style="display: inline; font-style: italic; font: inherit;">606</div> supersedes the revenue recognition requirements in ASC Topic <div style="display: inline; font-style: italic; font: inherit;">605,</div> &#x201c;Revenue Recognition&#x201d; ("ASC <div style="display: inline; font-style: italic; font: inherit;">605"</div>) and nearly all other existing revenue recognition guidance under US GAAP. The core principle of ASC <div style="display: inline; font-style: italic; font: inherit;">606</div> is to recognize revenues when promised goods or services are transferred to customers in an amount that reflects the consideration that is expected to be received for those goods or services. ASC <div style="display: inline; font-style: italic; font: inherit;">606</div> is effective for annual periods, and interim periods within those annual periods, beginning after <div style="display: inline; font-style: italic; font: inherit;"> December 15, 2017, </div>which is our fiscal year that began on <div style="display: inline; font-style: italic; font: inherit;"> February 1, 2018 (</div>fiscal <div style="display: inline; font-style: italic; font: inherit;">2019</div>). The Company has adopted ASC <div style="display: inline; font-style: italic; font: inherit;">606</div> in the <div style="display: inline; font-style: italic; font: inherit;">first</div> quarter of fiscal <div style="display: inline; font-style: italic; font: inherit;">2019</div> using the cumulative effect method and therefore the comparative information has <div style="display: inline; font-style: italic; font: inherit;">not</div> been restated and continues to be reported under ASC <div style="display: inline; font-style: italic; font: inherit;">605.</div> The details of the significant changes and quantitative impact of the changes are set out below.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify; text-indent: 0.5in"><div style="display: inline; text-decoration: underline;">Term-based licenses</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0 0pt 0.5in; text-align: justify">Under ASC <div style="display: inline; font-style: italic; font: inherit;">605,</div> revenue attributable to term-based arrangements was recognized ratably over the term of the arrangement because Vendor Specific Objective Evidence did <div style="display: inline; font-style: italic; font: inherit;">not</div> exist for the undelivered maintenance and support element of the arrangement. Under ASC <div style="display: inline; font-style: italic; font: inherit;">606,</div> the Company has deemed the licenses to be distinct from other performance obligations. Revenue allocated to the distinct license based on the SSP is recognized at the time that both the right-to-use the software has commenced for the term and the software has been made available to the customer.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify; text-indent: 0.5in"><div style="display: inline; text-decoration: underline;">Costs to obtain a contract</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0 0pt 0.5in; text-align: justify">Under the Company's previous accounting policies, the Company generally expensed commission costs paid to employees or <div style="display: inline; font-style: italic; font: inherit;">third</div> parties to obtain customer contracts as incurred. Under ASC <div style="display: inline; font-style: italic; font: inherit;">606,</div> the Company allocates these incremental commission costs to the various performance obligations to which they relate using the relative selling price allocation for bundled commissions. For performance obligations <div style="display: inline; font-style: italic; font: inherit;">not</div> delivered upfront, the allocated commissions are deferred and amortized over the pattern of transfer of the related performance obligation. If the expected amortization period for all performance obligations in a contract with a customer is <div style="display: inline; font-style: italic; font: inherit;">one</div> year or less, the commission fee is expensed when incurred. Capitalized costs to obtain a contract are included in other long-term assets on the consolidated balance sheet.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">The adoption of ASC <div style="display: inline; font-style: italic; font: inherit;">606</div> resulted in an increase to contract assets of <div style="display: inline; font-style: italic; font: inherit;">$0.5</div> million, an increase to other long-term assets of <div style="display: inline; font-style: italic; font: inherit;">$4.2</div> million, an increase to the liability for deferred income taxes of <div style="display: inline; font-style: italic; font: inherit;">$1.1</div> million and a decrease to accumulated deficit of <div style="display: inline; font-style: italic; font: inherit;">$3.6</div> million, as of <div style="display: inline; font-style: italic; font: inherit;"> February 1, 2018.</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">In <div style="display: inline; font-style: italic; font: inherit;"> October 2016, </div>the FASB issued Accounting Standards Update <div style="display: inline; font-style: italic; font: inherit;">2016</div>-<div style="display: inline; font-style: italic; font: inherit;">16,</div> &#x201c;Income Taxes (Topic <div style="display: inline; font-style: italic; font: inherit;">740</div>): Intra-Entity Transfers of Assets Other Than Inventory&#x201d; (&#x201c;ASU <div style="display: inline; font-style: italic; font: inherit;">2016</div>-<div style="display: inline; font-style: italic; font: inherit;">16&#x201d;</div>). ASU <div style="display: inline; font-style: italic; font: inherit;">2016</div>-<div style="display: inline; font-style: italic; font: inherit;">16</div> requires the recognition of the income tax consequences of an intra-entity transfer of an asset other than inventory when the transfer occurs. ASU <div style="display: inline; font-style: italic; font: inherit;">2016</div>-<div style="display: inline; font-style: italic; font: inherit;">16</div> is effective for annual periods, and interim periods within those annual periods, beginning after <div style="display: inline; font-style: italic; font: inherit;"> December 15, 2017, </div>which is our fiscal year that began on <div style="display: inline; font-style: italic; font: inherit;"> February 1, 2018 (</div>fiscal <div style="display: inline; font-style: italic; font: inherit;">2019</div>). The Company adopted this guidance in the <div style="display: inline; font-style: italic; font: inherit;">first</div> quarter of fiscal <div style="display: inline; font-style: italic; font: inherit;">2019.</div> As a result of adoption, the balance of unamortized deferred tax charges was written-off and previously unrecognized deferred income tax assets in certain jurisdictions were recognized. The change was applied on a modified retrospective basis, and <div style="display: inline; font-style: italic; font: inherit;">no</div> prior periods were restated. Accordingly, we recognized a decrease of <div style="display: inline; font-style: italic; font: inherit;">$4.0</div> million in accumulated deficit as a result of the adoption of this change in accounting policy, as of <div style="display: inline; font-style: italic; font: inherit;"> February 1, 2018.</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">In <div style="display: inline; font-style: italic; font: inherit;"> February 2016, </div>the FASB issued Accounting Standards Update <div style="display: inline; font-style: italic; font: inherit;">2016</div>-<div style="display: inline; font-style: italic; font: inherit;">02,</div> &#x201c;Leases (Topic <div style="display: inline; font-style: italic; font: inherit;">842</div>)&#x201d; (&#x201c;ASU <div style="display: inline; font-style: italic; font: inherit;">2016</div>-<div style="display: inline; font-style: italic; font: inherit;">02&#x201d;</div>) and issued subsequent amendments to the initial guidance during <div style="display: inline; font-style: italic; font: inherit;">2018,</div> collectively referred to as &#x201c;ASC <div style="display: inline; font-style: italic; font: inherit;">842&#x201d;.</div> These updates supersede the lease guidance in ASC Topic <div style="display: inline; font-style: italic; font: inherit;">840,</div> &#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 <div style="display: inline; font-style: italic; font: inherit;">840.</div> Leases will continue to be classified as either operating or finance. ASC <div style="display: inline; font-style: italic; font: inherit;">842</div> is effective for annual periods, and interim periods within those annual periods, beginning after <div style="display: inline; font-style: italic; font: inherit;"> December 15, 2018, </div>which is our fiscal year that began on <div style="display: inline; font-style: italic; font: inherit;"> February 1, 2019 (</div>fiscal <div style="display: inline; font-style: italic; font: inherit;">2020</div>). The Company adopted ASC <div style="display: inline; font-style: italic; font: inherit;">842</div> in the <div style="display: inline; font-style: italic; font: inherit;">first</div> quarter of fiscal <div style="display: inline; font-style: italic; font: inherit;">2020</div> using the cumulative effect method and therefore the comparative information has <div style="display: inline; font-style: italic; font: inherit;">not</div> been restated and continues to be reported under ASC <div style="display: inline; font-style: italic; font: inherit;">840.</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <!-- Field: Page; Sequence: 15 -->   <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">As permitted under ASC <div style="display: inline; font-style: italic; font: inherit;">842,</div> 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 <div style="display: inline; font-style: italic; font: inherit;">not</div> to recognize right-of-use (ROU) assets and lease liabilities for short-term leases that have a lease term of <div style="display: inline; font-style: italic; font: inherit;">12</div> months or less. The adoption of ASC <div style="display: inline; font-style: italic; font: inherit;">842</div> resulted in an increase to ROU assets and lease liabilities of <div style="display: inline; font-style: italic; font: inherit;"><div style="display: inline; font-style: italic; font: inherit;">$10.4</div></div> million as of <div style="display: inline; font-style: italic; font: inherit;"> February 1, 2019. </div>The adoption of ASC <div style="display: inline; font-style: italic; font: inherit;">842</div> did <div style="display: inline; font-style: italic; font: inherit;">not</div> have a material impact on either our consolidated statement of operations or our consolidated statement of cash flows.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">In <div style="display: inline; font-style: italic; font: inherit;"> June 2016, </div>the FASB issued Accounting Standards Update <div style="display: inline; font-style: italic; font: inherit;">2016</div>-<div style="display: inline; font-style: italic; font: inherit;">13,</div> &#x201c;Financial Instruments &#x2013; Credit Losses (Topic <div style="display: inline; font-style: italic; font: inherit;">326</div>): Measurement of Credit Losses on Financial Instruments&#x201d; (&#x201c;ASU <div style="display: inline; font-style: italic; font: inherit;">2016</div>-<div style="display: inline; font-style: italic; font: inherit;">13&#x201d;</div>) and issued subsequent amendments to the initial guidance during the <div style="display: inline; font-style: italic; font: inherit;">2019</div> calendar year, collectively referred to as &#x201c;ASC <div style="display: inline; font-style: italic; font: inherit;">326&#x201d;.</div> ASC <div style="display: inline; font-style: italic; font: inherit;">326</div> requires the measurement and recognition of expected credit losses for financial assets held at amortized cost. ASC <div style="display: inline; font-style: italic; font: inherit;">326</div> 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 <div style="display: inline; font-style: italic; font: inherit;">326</div> is effective for annual periods, and interim periods within those annual periods, beginning after <div style="display: inline; font-style: italic; font: inherit;"> December 15, 2019, </div>which is our fiscal year that began on <div style="display: inline; font-style: italic; font: inherit;"> February 1, 2020 (</div>fiscal <div style="display: inline; font-style: italic; font: inherit;">2021</div>).</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;">326</div> as of <div style="display: inline; font-style: italic; font: inherit;"> February 1, 2020 </div>using the cumulative effect method and therefore the comparative information has <div style="display: inline; font-style: italic; font: inherit;">not</div> been restated. The adoption of ASC <div style="display: inline; font-style: italic; font: inherit;">326</div> did <div style="display: inline; font-style: italic; font: inherit;">not</div> have a material impact on our results of operations or disclosures.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">In <div style="display: inline; font-style: italic; font: inherit;"> January 2017, </div>the FASB issued Accounting Standards Update <div style="display: inline; font-style: italic; font: inherit;">2017</div>-<div style="display: inline; font-style: italic; font: inherit;">04,</div> &#x201c;Intangibles &#x2013; Goodwill and Other (Topic <div style="display: inline; font-style: italic; font: inherit;">350</div>): Simplifying the Test for Goodwill Impairment&#x201d; (&#x201c;ASU <div style="display: inline; font-style: italic; font: inherit;">2017</div>-<div style="display: inline; font-style: italic; font: inherit;">04&#x201d;</div>). ASU <div style="display: inline; font-style: italic; font: inherit;">2017</div>-<div style="display: inline; font-style: italic; font: inherit;">04</div> simplifies how an entity is required to test goodwill for impairment. ASU <div style="display: inline; font-style: italic; font: inherit;">2017</div>-<div style="display: inline; font-style: italic; font: inherit;">04</div> is effective for annual periods, and interim periods within those annual periods, beginning after <div style="display: inline; font-style: italic; font: inherit;"> December 15, 2019, </div>which is our fiscal year that began on <div style="display: inline; font-style: italic; font: inherit;"> February 1, 2020 (</div>fiscal <div style="display: inline; font-style: italic; font: inherit;">2021</div>). The Company adopted this guidance in the <div style="display: inline; font-style: italic; font: inherit;">first</div> quarter of fiscal <div style="display: inline; font-style: italic; font: inherit;">2021.</div> The adoption of this guidance did <div style="display: inline; font-style: italic; font: inherit;">not</div> have a material impact on our results of operations or disclosures.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">In <div style="display: inline; font-style: italic; font: inherit;"> August 2018, </div>the FASB issued Accounting Standards Update <div style="display: inline; font-style: italic; font: inherit;">2018</div>-<div style="display: inline; font-style: italic; font: inherit;">15,</div> &#x201c;Intangibles &#x2013; Goodwill and Other &#x2013; Internal-Use Software (Subtopic <div style="display: inline; font-style: italic; font: inherit;">350</div>-<div style="display: inline; font-style: italic; font: inherit;">40</div>): Customer's Accounting for Implementation Costs Incurred in a Cloud Computing Arrangement That Is a Service Contract&#x201d; (&#x201c;ASU <div style="display: inline; font-style: italic; font: inherit;">2018</div>-<div style="display: inline; font-style: italic; font: inherit;">15&#x201d;</div>). ASU <div style="display: inline; font-style: italic; font: inherit;">2018</div>-<div style="display: inline; font-style: italic; font: inherit;">15</div> 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 <div style="display: inline; font-style: italic; font: inherit;">2018</div>-<div style="display: inline; font-style: italic; font: inherit;">15</div> is effective for annual periods, and interim periods within those annual periods, beginning after <div style="display: inline; font-style: italic; font: inherit;"> December 15, 2019, </div>which is our fiscal year that began on <div style="display: inline; font-style: italic; font: inherit;"> February 1, 2020 (</div>fiscal <div style="display: inline; font-style: italic; font: inherit;">2021</div>). The Company adopted this guidance in the <div style="display: inline; font-style: italic; font: inherit;">first</div> quarter of fiscal <div style="display: inline; font-style: italic; font: inherit;">2021.</div> The adoption of this guidance did <div style="display: inline; font-style: italic; font: inherit;">not</div> have a material impact on our results of operations or disclosures.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div> <div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0">Recently issued accounting pronouncements</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">In <div style="display: inline; font-style: italic; font: inherit;"> December 2019, </div>the FASB issued Accounting Standards Update <div style="display: inline; font-style: italic; font: inherit;">2019</div>-<div style="display: inline; font-style: italic; font: inherit;">12,</div> &#x201c;Income Taxes (Topic <div style="display: inline; font-style: italic; font: inherit;">740</div>): Simplifying the Accounting for Income Taxes&#x201d; (&#x201c;ASU <div style="display: inline; font-style: italic; font: inherit;">2019</div>-<div style="display: inline; font-style: italic; font: inherit;">12&#x201d;</div>). ASU <div style="display: inline; font-style: italic; font: inherit;">2019</div>-<div style="display: inline; font-style: italic; font: inherit;">12</div> simplifies how an entity accounts for income taxes. ASU <div style="display: inline; font-style: italic; font: inherit;">2019</div>-<div style="display: inline; font-style: italic; font: inherit;">12</div> is effective for annual periods, and interim periods within those annual periods, beginning after <div style="display: inline; font-style: italic; font: inherit;"> December 15, 2020, </div>which will be our fiscal year beginning <div style="display: inline; font-style: italic; font: inherit;"> February 1, 2021 (</div>fiscal <div style="display: inline; font-style: italic; font: inherit;">2022</div>). Early adoption is permitted. The Company will adopt this guidance in the <div style="display: inline; font-style: italic; font: inherit;">first</div> quarter of fiscal <div style="display: inline; font-style: italic; font: inherit;">2022.</div> The adoption of this guidance is <div style="display: inline; font-style: italic; font: inherit;">not</div> expected to have a material impact on our results of operations or disclosures.</div></div></div><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://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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>26
<FILENAME>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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623855943976">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 3 - Acquisitions<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationDisclosureTextBlock', window );">Business Combination Disclosure [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-weight: bold;">Note <div style="display: inline; font-style: italic; font: inherit;">3</div> &#x2013; Acquisitions</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; text-decoration: underline;">Fiscal <div style="display: inline; font-style: italic; font: inherit;">2021</div> Acquisitions</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">On <div style="display: inline; font-style: italic; font: inherit;"> February 21, 2020, </div>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 <div style="display: inline; font-style: italic; font: inherit;">$24.1</div> million, net of cash acquired, which was funded from a combination of cash on hand and drawing on Descartes' existing credit facility. The gross contractual amount of trade receivables acquired was <div style="display: inline; font-style: italic; font: inherit;">$0.4</div> million with a fair value of <div style="display: inline; font-style: italic; font: inherit;">$0.4</div> million at the date of acquisition. Our acquisition date estimate of contractual cash flows <div style="display: inline; font-style: italic; font: inherit;">not</div> expected to be collected was nominal. The purchase price was finalized in the <div style="display: inline; font-style: italic; font: inherit;">three</div> month period ended <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021 </div>with <div style="display: inline; font-style: italic; font: inherit;">no</div> adjustments.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">On <div style="display: inline; font-style: italic; font: inherit;"> June 10, 2020 </div>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 <div style="display: inline; font-style: italic; font: inherit;">$5.2</div> million, net of cash acquired, which was funded from cash on hand. Additional contingent consideration of up to <div style="display: inline; font-style: italic; font: inherit;">$6.0</div> million in cash is payable if certain revenue performance targets are met by Kontainers in the <div style="display: inline; font-style: italic; font: inherit;">two</div> years following the acquisition. The fair value of the contingent consideration was valued at <div style="display: inline; font-style: italic; font: inherit;">$1.4</div> million at the acquisition date. The gross contractual amount of trade receivables acquired was <div style="display: inline; font-style: italic; font: inherit;">$0.2</div> million with a fair value of <div style="display: inline; font-style: italic; font: inherit;">$0.2</div> million at the date of acquisition. Our acquisition date estimate of contractual cash flows <div style="display: inline; font-style: italic; font: inherit;">not</div> 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 <div style="display: inline; font-style: italic; font: inherit;"> June 10, 2021.</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">On <div style="display: inline; font-style: italic; font: inherit;"> November 6, 2020, </div>Descartes acquired all of the shares of ShipTrack Inc. (&#x201c;ShipTrack&#x201d;), a provider of cloud-based mobile resource management and shipment tracking solutions. The purchase price for the acquisition was approximately <div style="display: inline; font-style: italic; font: inherit;">$19.0</div> million, net of cash acquired, which was funded from cash on hand. Additional contingent consideration of up to CAD <div style="display: inline; font-style: italic; font: inherit;">25.0</div> million in cash is payable if certain revenue performance targets are met by ShipTrack in the <div style="display: inline; font-style: italic; font: inherit;">two</div> years following the acquisition. The fair value of the contingent consideration was valued at <div style="display: inline; font-style: italic; font: inherit;">$2.8</div> million at the acquisition date. The gross contractual amount of trade receivables acquired was <div style="display: inline; font-style: italic; font: inherit;">$1.7</div> million with a fair value of <div style="display: inline; font-style: italic; font: inherit;">$1.7</div> million at the date of acquisition. Our acquisition date estimate of contractual cash flows <div style="display: inline; font-style: italic; font: inherit;">not</div> 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, deferred revenue as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before <div style="display: inline; font-style: italic; font: inherit;"> November 6, 2021.</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">For the businesses acquired during fiscal <div style="display: inline; font-style: italic; font: inherit;">2021,</div> we incurred acquisition-related costs of <div style="display: inline; font-style: italic; font: inherit;">$0.8</div> million for the year ended <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021. </div>The acquisition-related costs were primarily for advisory services and are included in other charges in our consolidated statements of operations. For the year ended <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021, </div>we have recognized <div style="display: inline; color: black">aggregate revenues of <div style="display: inline; font-style: italic; font: inherit;">$9.4</div> million, and net income (excluding any interest costs on financing the a</div>cquisition) of nominal from Peoplevox, Kontainers and ShipTrack since the date of acquisition in our consolidated statements of operations.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <!-- Field: Page; Sequence: 17 -->    <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">The final purchase price allocation for Peoplevox and the preliminary purchase price allocations for Kontainers and ShipTrack, which have <div style="display: inline; font-style: italic; font: inherit;">not</div> been finalized, are as follows:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Peoplevox</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Kontainers</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">ShipTrack</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Total</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td>Purchase price consideration:</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-indent: -10pt; width: 48%; text-align: left; padding-left: 20pt">Cash, less cash acquired related to Peoplevox ($1,634), Kontainers (overdraft of $13) and ShipTrack ($529)</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">24,137</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5,237</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">19,029</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%; font-weight: bold">&nbsp;</td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">48,403</div></td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left; padding-left: 10pt">Consideration payable</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">100</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">100</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left; padding-left: 10pt">Contingent consideration</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,414</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,825</div></td>  <td style="text-align: left">&nbsp;</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4,239</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left; padding-bottom: 1pt; padding-left: 10pt">Net working capital adjustments (receivable) / payable</td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(42</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">)</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(218</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">)</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">82</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(178</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">24,095</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6,533</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">21,936</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">52,564</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left">Allocated to:</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left; padding-left: 10pt">Current assets, excluding cash acquired</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">485</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">253</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,846</div></td>  <td style="text-align: left">&nbsp;</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,584</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left; padding-left: 10pt">Right-of-use assets</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">151</div></td>  <td style="text-align: left">&nbsp;</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">151</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left; padding-left: 10pt">Current liabilities</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(776</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(989</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(668</div></td>  <td style="text-align: left">)</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(2,433</div></td>  <td style="font-weight: bold; text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left; padding-left: 10pt">Deferred revenue</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(748</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(102</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(204</div></td>  <td style="text-align: left">)</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,054</div></td>  <td style="font-weight: bold; text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left; padding-left: 10pt">Lease obligations</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(151</div></td>  <td style="text-align: left">)</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(151</div></td>  <td style="font-weight: bold; text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left; padding-left: 10pt">Deferred income tax liability</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,615</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(4,012</div></td>  <td style="text-align: left">)</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(5,627</div></td>  <td style="font-weight: bold; text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-bottom: 1pt; padding-left: 10pt">Debt</td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(728</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">)</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(728</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left">Net tangible assets (liabilities) assumed</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(2,654</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(838</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(3,766</div></td>  <td style="text-align: left">)</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(7,258</div></td>  <td style="font-weight: bold; text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left">Finite life intangible assets acquired:</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left">Customer agreements and relationships</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,631</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">800</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,905</div></td>  <td style="text-align: left">&nbsp;</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8,336</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left">Existing technology</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">7,651</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,000</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">11,102</div></td>  <td style="text-align: left">&nbsp;</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">21,753</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left; padding-left: 10pt">Trade names</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">30</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">77</div></td>  <td style="text-align: left">&nbsp;</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">107</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left; padding-left: 10pt">Non-compete covenants</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">285</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">80</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">291</div></td>  <td style="text-align: left">&nbsp;</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">656</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-bottom: 1pt">Goodwill</td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">15,182</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,461</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">10,327</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">28,970</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">24,095</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6,533</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">21,936</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">52,564</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">The above transactions were accounted for using the acquisition method in accordance with ASC Topic <div style="display: inline; font-style: italic; font: inherit;">805,</div> &#x201c;Business Combinations&#x201d;. The purchase price allocations in the table above represents our estimates of the allocation of the purchase price and the fair value of net assets acquired. The preliminary purchase price allocations <div style="display: inline; font-style: italic; font: inherit;"> may </div>differ from the final purchase price allocations, and these differences <div style="display: inline; font-style: italic; font: inherit;"> may </div>be material. Revisions to the allocation will occur as additional information about the fair value of assets and liabilities becomes available. The final purchase price allocation will be completed within <div style="display: inline; font-style: italic; font: inherit;">one</div> year from the acquisition date.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">The acquired intangible assets are being amortized over their estimated useful lives as follows:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Peoplevox</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Kontainers</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">ShipTrack</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="width: 61%; text-align: left">Customer agreements and relationships (years)</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">10</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">12</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">13</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left">Existing technology (years)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left">Trade names (years)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt"><div style="display: inline; font-style: italic; font: inherit;">N/A</div></div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left">Non-compete covenants (years)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;">not</div> deductible for tax purposes.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <!-- Field: Page; Sequence: 18 -->   <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; text-decoration: underline;">Fiscal <div style="display: inline; font-style: italic; font: inherit;">2020</div> Acquisitions</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">On <div style="display: inline; font-style: italic; font: inherit;"> February 12, 2019, </div>Descartes acquired substantially all of the assets of the businesses run by the Management Systems Resources 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 <div style="display: inline; font-style: italic; font: inherit;">$248.9</div> million, net of cash acquired, which was funded from a combination of drawing on Descartes' existing credit facility and issuing to the sellers <div style="display: inline; font-style: italic; font: inherit;">0.3</div> million Descartes common shares from treasury. The gross contractual amount of trade receivables acquired was <div style="display: inline; font-style: italic; font: inherit;">$6.4</div> million with a fair value of <div style="display: inline; font-style: italic; font: inherit;">$5.2</div> million at the date of acquisition. Our acquisition date estimate of contractual cash flows <div style="display: inline; font-style: italic; font: inherit;">not</div> expected to be collected was <div style="display: inline; font-style: italic; font: inherit;">$1.2</div> million. The purchase price was finalized in the <div style="display: inline; font-style: italic; font: inherit;">three</div> month period ended <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2020 </div>with <div style="display: inline; font-style: italic; font: inherit;">no</div> adjustments.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">On <div style="display: inline; font-style: italic; font: inherit;"> May 10, 2019, </div>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 <div style="display: inline; font-style: italic; font: inherit;">$21.8</div> million, net of cash acquired, which was funded from drawing on Descartes' existing credit facility. Additional contingent consideration of up to <div style="display: inline; font-style: italic; font: inherit;">$9.0</div> million in cash is payable if certain revenue performance targets are met by CORE in the <div style="display: inline; font-style: italic; font: inherit;">two</div> years following the acquisition. The fair value of the contingent consideration was valued at <div style="display: inline; font-style: italic; font: inherit;">$1.5</div> million at the acquisition date. The gross contractual amount of trade receivables acquired was <div style="display: inline; font-style: italic; font: inherit;">$0.4</div> million with a fair value of <div style="display: inline; font-style: italic; font: inherit;">$0.4</div> million at the date of acquisition. Our acquisition date estimate of contractual cash flows <div style="display: inline; font-style: italic; font: inherit;">not</div> expected to be collected was nominal. The purchase price was finalized in the <div style="display: inline; font-style: italic; font: inherit;">three</div> month period ended <div style="display: inline; font-style: italic; font: inherit;"> April 30, 2020 </div>with <div style="display: inline; font-style: italic; font: inherit;">no</div> adjustments.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">On <div style="display: inline; font-style: italic; font: inherit;"> June 27, 2019, </div>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 <div style="display: inline; font-style: italic; font: inherit;">$18.6</div> million, net of cash acquired, which was funded from drawing on Descartes' existing credit facility. The gross contractual amount of trade receivables acquired was <div style="display: inline; font-style: italic; font: inherit;">$0.9</div> million with a fair value of <div style="display: inline; font-style: italic; font: inherit;">$0.8</div> million at the date of acquisition. Our acquisition date estimate of contractual cash flows <div style="display: inline; font-style: italic; font: inherit;">not</div> expected to be collected was <div style="display: inline; font-style: italic; font: inherit;">$0.1</div> million. The purchase price was finalized in the <div style="display: inline; font-style: italic; font: inherit;">three</div> month period ended <div style="display: inline; font-style: italic; font: inherit;"> July 31, 2020 </div>with <div style="display: inline; font-style: italic; font: inherit;">no</div> adjustments.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">On <div style="display: inline; font-style: italic; font: inherit;"> August 20, 2019, </div>Descartes acquired BestTransport.com, 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 <div style="display: inline; font-style: italic; font: inherit;">$11.7</div> million, net of cash acquired, which was funded from drawing on Descartes' existing credit facility. The gross contractual amount of trade receivables acquired was <div style="display: inline; font-style: italic; font: inherit;">$0.6</div> million with a fair value of <div style="display: inline; font-style: italic; font: inherit;">$0.6</div> million at the date of acquisition. Our acquisition date estimate of contractual cash flows <div style="display: inline; font-style: italic; font: inherit;">not</div> expected to be collected was nominal. The purchase price was finalized in the <div style="display: inline; font-style: italic; font: inherit;">three</div> month period ended <div style="display: inline; font-style: italic; font: inherit;"> July 31, 2020 </div>with <div style="display: inline; font-style: italic; font: inherit;">no</div> adjustments.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div>  <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"></div> <!-- Field: Page; Sequence: 19 -->   <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">The final purchase price allocations for businesses we acquired during <div style="display: inline; font-style: italic; font: inherit;">2020</div> are as follows:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td colspan="3" style="font-weight: bold; text-align: right; border-bottom: Black 1pt solid">Visual Compliance</td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td colspan="3" style="text-align: right; border-bottom: Black 1pt solid"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">CORE</div></div></td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td colspan="3" style="text-align: right; border-bottom: Black 1pt solid"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">STEP-com</div></div></td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td colspan="3" style="text-align: right; border-bottom: Black 1pt solid"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Best-Transport</div></div></td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td colspan="3" style="text-align: right; border-bottom: Black 1pt solid"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Total</div></div></td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td>Purchase price consideration:</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-indent: -10pt; padding-left: 20pt; width: 35%; text-align: left">Cash, less cash acquired related to Visual Compliance ($170), CORE ($213), STEPcom ($2,700) and BestTransport ($507)</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">239,863</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">21,833</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">18,639</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">11,718</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">292,053</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt">Common shares issued</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">9,045</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">9,045</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left">Contingent consideration</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,450</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,450</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt">Net working capital adjustments payable / (receivable)</td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,147</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">62</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">250</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,459</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">250,055</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">23,345</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">18,889</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">11,718</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">304,007</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left">Allocated to:</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left">Current assets, excluding cash acquired</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6,403</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">689</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,470</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">815</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">9,377</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left">Property and equipment</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">30</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,048</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">257</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">35</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,370</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left">Deferred income tax asset</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">30,924</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">30,924</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left">Right-of-use assets</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,188</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">68</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">232</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">194</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,682</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left">Current liabilities</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(840</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(352</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(874</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(284</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(2,350</div></td>  <td style="text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left">Deferred revenue</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(10,267</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(278</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(813</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(9</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(11,367</div></td>  <td style="text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left">Lease obligations</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,188</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(68</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(232</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(194</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,682</div></td>  <td style="text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt">Deferred income tax liability</td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(282</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">)</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(3,332</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">)</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(2,316</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">)</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,352</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">)</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(7,282</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left">Net tangible assets (liabilities) assumed</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">25,968</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,225</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(2,276</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(795</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">21,672</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left">Finite life intangible assets acquired:</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left">Customer agreements and relationships</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">32,186</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4,600</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">10,839</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,000</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">50,625</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left">Existing technology</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">69,422</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6,800</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,800</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">80,022</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left">Trade names</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">528</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">200</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">102</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">50</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">880</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left">Non-compete covenants</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,166</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">300</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">205</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">150</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,821</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-bottom: 1pt">Goodwill</td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">118,785</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">12,670</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">10,019</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5,513</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">146,987</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">250,055</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">23,345</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">18,889</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">11,718</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">304,007</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">The acquired intangible assets are being amortized over their estimated useful lives as follows:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"></div><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Visual Compliance</div></div></td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"></div><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right">&nbsp;</div></td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">CORE</div></div></td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"></div><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"></div><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right">&nbsp;</div></td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">STEPcom</div></div></td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"></div><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right">&nbsp;</div></td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Best Transport</div></div></td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="width: 46%; text-align: left">Customer agreements and relationships (years)</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 12%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">14</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">13</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">9</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">12</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left">Existing technology (years)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">7</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt"><div style="display: inline; font-style: italic; font: inherit;">N/A</div></div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left">Trade names (years)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left">Non-compete covenants (years)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;">not</div> deductible for tax purposes. The goodwill from the Visual Compliance acquisition is deductible for tax purposes.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-weight: bold;">&nbsp;</div></div> <!-- Field: Page; Sequence: 20 -->   <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-weight: bold;"></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; text-decoration: underline;">Fiscal <div style="display: inline; font-style: italic; font: inherit;">2019</div> Acquisitions</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">On <div style="display: inline; font-style: italic; font: inherit;"> February 2, 2018, </div>Descartes acquired Aljex Software, Inc. (&#x201c;Aljex&#x201d;), a cloud-based provider of back-office transportation management solutions for freight brokers and transportation providers. US-based Aljex helps customers automate business processes and create electronic documents critical for executing transportation moves through the lifecycle of a shipment. The purchase price for the acquisition was approximately <div style="display: inline; font-style: italic; font: inherit;">$32.4</div> million, net of cash acquired, which was funded from drawing on Descartes' existing credit facility. The gross contractual amount of trade receivables acquired was <div style="display: inline; font-style: italic; font: inherit;">$0.2</div> million with a fair value of <div style="display: inline; font-style: italic; font: inherit;">$0.2</div> million at the date of acquisition. Our acquisition date estimate of contractual cash flows <div style="display: inline; font-style: italic; font: inherit;">not</div> expected to be collected was nominal. The purchase price was finalized in the <div style="display: inline; font-style: italic; font: inherit;">three</div> month period ended <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2019 </div>with <div style="display: inline; font-style: italic; font: inherit;">no</div> adjustments.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">On <div style="display: inline; font-style: italic; font: inherit;"> June 22, 2018, </div>Descartes acquired certain assets of Velocity Mail, LLC (&#x201c;Velocity Mail&#x201d;), an electronic transportation network that provides global air carriers with mail and parcel shipment scanning and tracking solutions. Using US-based Velocity Mail's network, global air carriers leverage mobile devices to accurately track shipments and deliveries in real-time. The purchase price for the acquisition was approximately <div style="display: inline; font-style: italic; font: inherit;">$26.1</div> million, net of cash acquired, which was funded from drawing on Descartes' existing credit facility. The gross contractual amount of trade receivables acquired was <div style="display: inline; font-style: italic; font: inherit;">$1.0</div> million with a fair value of <div style="display: inline; font-style: italic; font: inherit;">$1.0</div> million at the date of acquisition. Our acquisition date estimate of contractual cash flows <div style="display: inline; font-style: italic; font: inherit;">not</div> expected to be collected was nominal. The purchase price was finalized in the <div style="display: inline; font-style: italic; font: inherit;">three</div> month period ended <div style="display: inline; font-style: italic; font: inherit;"> July 31, 2019 </div>with <div style="display: inline; font-style: italic; font: inherit;">no</div> adjustments.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; color: black">On <div style="display: inline; font-style: italic; font: inherit;"> August 21, 2018, </div>Descartes acquired PinPoint GPS Solutions Inc. (&#x201c;PinPoint&#x201d;), a provider of fleet tracking and mobile workforce solutions. Canada-based PinPoint helps customers collect real-time location information on trucks and mobile workers using technology, including Geotab (telematics) and SkyBitz (trailer tracking). The purchase price for the acquisition was approximately <div style="display: inline; font-style: italic; font: inherit;">$11.0</div> million </div>(CAD <div style="display: inline; font-style: italic; font: inherit;">$14.4</div> million)<div style="display: inline; color: black">, net of cash acquired, which was funded from a combination of drawing on Descartes' existing credit facility and issuing to the sellers less than <div style="display: inline; font-style: italic; font: inherit;">0.1</div> million Descartes common shares from treasury. </div>Additional contingent consideration of up to <div style="display: inline; font-style: italic; font: inherit;">$2.3</div> million (CAD <div style="display: inline; font-style: italic; font: inherit;">$3.0</div> million) in cash is payable if certain revenue performance targets are met by PinPoint in the <div style="display: inline; font-style: italic; font: inherit;">two</div> years following the acquisition. The fair value of the contingent consideration was valued at <div style="display: inline; font-style: italic; font: inherit;">$0.7</div> million at the acquisition date. The gross contractual amount of trade receivables acquired was <div style="display: inline; font-style: italic; font: inherit;">$0.5</div> million with a fair value of <div style="display: inline; font-style: italic; font: inherit;">$0.5</div> million at the date of acquisition. Our acquisition date estimate of contractual cash flows <div style="display: inline; font-style: italic; font: inherit;">not</div> expected to be collected was nominal. The purchase price was finalized in the <div style="display: inline; font-style: italic; font: inherit;">three</div> month period ended <div style="display: inline; font-style: italic; font: inherit;"> July 31, 2019 </div>with <div style="display: inline; font-style: italic; font: inherit;">no</div> adjustments.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div>   <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">The final purchase price allocations for businesses we acquired during <div style="display: inline; font-style: italic; font: inherit;">2019</div> are as follows:</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Aljex</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Velocity Mail</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;"></div></div><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">PinPoint</div></div></td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Total</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td>Purchase price consideration:</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="width: 48%; text-align: left; padding-left: 10pt">Cash, less cash acquired related to Aljex ($193), Velocity Mail (nil) and PinPoint ($769)</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">32,382</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">26,107</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">9,443</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">67,932</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt">Common shares issued</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,536</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,536</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left; padding-left: 10pt">Contingent consideration</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">714</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">714</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left; padding-bottom: 1pt; padding-left: 10pt">Net working capital adjustments (receivable) / payable</td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(152</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">)</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(102</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">)</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">36</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(218</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">32,230</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">26,005</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">11,729</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">69,964</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left">Allocated to:</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left; padding-left: 10pt">Current assets, excluding cash acquired</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">607</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,407</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">599</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,613</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left; padding-left: 10pt">Other long-term assets</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">501</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">501</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left; padding-left: 10pt">Current liabilities</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(266</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(81</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(559</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(906</div></td>  <td style="text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left; padding-left: 10pt">Deferred revenue</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,024</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(70</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(574</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,668</div></td>  <td style="text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left; padding-bottom: 1pt; padding-left: 10pt">Deferred income tax liability</td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(4,200</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">)</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(2,077</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">)</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(6,277</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left; padding-left: 0pt">Net tangible (liabilities) assets assumed</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(4,883</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,757</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(2,611</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(5,737</div></td>  <td style="text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td>&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left">Finite life intangible assets acquired:</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left">Customer agreements and relationships</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5,300</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">7,800</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">7,758</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">20,858</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left">Existing technology</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">12,400</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">7,600</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">20,000</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt">Tradenames</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">280</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">100</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">207</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">587</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left; padding-left: 10pt">Non-compete covenants</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">230</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">300</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">69</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">599</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-bottom: 1pt">Goodwill</td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">18,903</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8,448</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6,306</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">33,657</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">32,230</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">26,005</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">11,729</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">69,964</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">The acquired intangible assets are being amortized over their estimated useful lives as follows:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Aljex</div></div></td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Velocity Mail</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;"></div></div><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right">&nbsp;</div></td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">PinPoint</div></div></td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="width: 61%; text-align: left">Customer agreements and relationships (years)</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">13</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">12</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">9</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left">Existing technology (years)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt"><div style="display: inline; font-style: italic; font: inherit;">N/A</div></div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left">Trade names (years)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left">Non-compete covenants (years)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">The goodwill on the Aljex, Velocity Mail and PinPoint acquisitions arose as a result of the combined strategic value to our growth plan. The goodwill arising from the Aljex and PinPoint acquisitions is <div style="display: inline; font-style: italic; font: inherit;">not</div> deductible for tax purposes. The goodwill from the Velocity Mail acquisition is deductible for tax purposes.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; text-decoration: underline;">Pro Forma Results of Operations (Unaudited)</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">The financial information in the table below summarizes selected results of operations on a pro forma basis as if we had acquired ShipTrack, Kontainers, Peoplevox, BestTransport, STEPcom, CORE, Visual Compliance, PinPoint, Velocity Mail and Aljex as of <div style="display: inline; font-style: italic; font: inherit;"> February 1, 2018.</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">This pro forma information is for information purposes only and does <div style="display: inline; font-style: italic; font: inherit;">not</div> purport to represent what our actual results of operations for the periods presented would have been had the acquisitions of ShipTrack, Kontainers, Peoplevox, BestTransport, STEPcom, CORE, Visual Compliance, PinPoint, Velocity Mail and Aljex occurred at <div style="display: inline; font-style: italic; font: inherit;"> February 1, 2018, </div>or to project our results of operations for any future period.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <!-- Field: Page; Sequence: 22 -->   <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td style="font-style: italic">Year Ended</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom">  <td style="text-align: right">&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">2020</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">2019</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="width: 61%; font-weight: normal">Revenues</td>  <td style="width: 1%; font-weight: bold">&nbsp;</td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">354,461</div></td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">341,376</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">328,824</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="font-weight: normal; text-align: left">Net income</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">51,302</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">33,727</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">25,370</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="font-weight: normal">Earnings per share</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt">Basic</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">0.61</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">0.41</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">0.33</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt">Diluted</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">0.60</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">0.41</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">0.33</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>    </table> </div></div><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>nonnum: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>27
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623855939704">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 4 - Fair Value Measurements<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueDisclosuresTextBlock', window );">Fair Value Disclosures [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-weight: bold;">Note <div style="display: inline; font-style: italic; font: inherit;">4</div> &#x2013; Fair Value Measurements</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">ASC Topic <div style="display: inline; font-style: italic; font: inherit;">820</div> &#x201c;Fair Value Measurements and Disclosures&#x201d; (Topic <div style="display: inline; font-style: italic; font: inherit;">820</div>) 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, <div style="display: inline; font-style: italic; font: inherit;">not</div> 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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Topic <div style="display: inline; font-style: italic; font: inherit;">820</div> establishes a fair value hierarchy which prioritizes the inputs used in the valuation methodologies in measuring fair value into <div style="display: inline; font-style: italic; font: inherit;">three</div> levels:</div> <table style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: top">  <td style="width: 0.25in"></td>  <td style="width: 0.25in">&#x2022;</td>  <td style="text-align: justify">Level <div style="display: inline; font-style: italic; font: inherit;">1&#x2014;inputs</div> are based upon unadjusted quoted prices for identical instruments traded in active markets.</td>  </tr>   </table> <table style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: top">  <td style="width: 0.25in"></td>  <td style="width: 0.25in">&#x2022;</td>  <td style="text-align: justify">Level <div style="display: inline; font-style: italic; font: inherit;">2&#x2014;inputs</div> are based upon quoted prices for similar instruments in active markets, quoted prices for identical or similar instruments in markets that are <div style="display: inline; font-style: italic; font: inherit;">not</div> 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.</td>  </tr>   </table> <table style="font: 10pt Times New Roman, Times, Serif; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: top">  <td style="width: 0.25in"></td>  <td style="width: 0.25in">&#x2022;</td>  <td style="text-align: justify">Level <div style="display: inline; font-style: italic; font: inherit;">3&#x2014;inputs</div> are generally unobservable and typically reflect management'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.</td>  </tr>   </table> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">The carrying amounts of the Company's cash, accounts receivable (net), accounts payable, accrued liabilities and income taxes payable approximate their fair value (a Level <div style="display: inline; font-style: italic; font: inherit;">2</div> measurement) due to their short maturities.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;">not</div> hold derivatives for speculative purposes. As at <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021, </div>we had equity derivatives for <div style="display: inline; font-style: italic; font: inherit;">226,525</div> Descartes common shares with a weighted average price of <div style="display: inline; font-style: italic; font: inherit;">$25.70.</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">The following table shows the Company's derivative instruments measured at fair value on a recurring basis as of <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021:</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Fair Value of Derivatives Designated as Hedge Instruments</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Fair Value of Derivatives Not Designated As Hedge Instruments</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Fair Value</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left">Derivative assets:</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="width: 49%; text-align: left; padding-bottom: 1pt">Equity contracts</td>  <td style="width: 1%; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; width: 14%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; width: 14%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8,001</div></td>  <td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; width: 14%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8,001</div></td>  <td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <!-- Field: Page; Sequence: 23 -->   <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">The following table shows the Company's derivative instruments measured at fair value on a recurring basis as of <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2020:</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">Fair Value of Derivatives Designated as Hedge Instruments</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">Fair Value of Derivatives Not Designated As Hedge Instruments</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">Fair Value</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left">Derivative assets:</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="width: 49%; text-align: left; padding-bottom: 1pt">Equity contracts</td>  <td style="width: 1%; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; width: 1%; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; width: 14%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="border-bottom: Black 1pt solid; width: 1%; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; width: 1%; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; width: 1%; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; width: 14%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5,656</div></td>  <td style="border-bottom: Black 1pt solid; width: 1%; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; width: 1%; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; width: 1%; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; width: 14%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5,656</div></td>  <td style="border-bottom: Black 1pt solid; width: 1%; text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">The fair value of equity contract derivatives is determined utilizing a valuation model based on the quoted market value of <div style="display: inline; color: black">our common shares at the balance sheet date </div>(Level <div style="display: inline; font-style: italic; font: inherit;">2</div> 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 years ended <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021, </div><div style="display: inline; font-style: italic; font: inherit;">2020</div> and <div style="display: inline; font-style: italic; font: inherit;">2019,</div> we recognized an expense (recovery) in general and administrative expenses of (<div style="display: inline; font-style: italic; font: inherit;">$3.4</div>) million, (<div style="display: inline; font-style: italic; font: inherit;">$4.0</div>) million and (<div style="display: inline; font-style: italic; font: inherit;">$1.2</div>) million, respectively.</div></div><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=117815213&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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>28
<FILENAME>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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623855912328">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 5 - Trade Accounts Receivable<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock', window );">Loans, Notes, Trade and Other Receivables Disclosure [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;">Note <div style="display: inline; font-style: italic; font: inherit;">5</div> &#x2013; Trade Accounts Receivable</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">2020</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="width: 74%; text-align: left">Trade accounts receivable</td>  <td style="width: 1%; font-weight: bold">&nbsp;</td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">39,536</div></td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">37,121</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left; padding-bottom: 1pt">Less: Provision for credit losses</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(2,330</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">)</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(2,003</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">37,206</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">35,118</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Included in accounts receivable are unbilled receivables in the amount of <div style="display: inline; font-style: italic; font: inherit;">$0.3</div> million as at <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021 (</div><div style="display: inline; font-style: italic; font: inherit;">$1.4</div> million as at <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2020). </div><div style="display: inline; font-style: italic; font: inherit;">No</div> single customer accounted for more than <div style="display: inline; font-style: italic; font: inherit;">10%</div> of the accounts receivable balance as of <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021 </div>and <div style="display: inline; font-style: italic; font: inherit;">2020.</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">The following table presents the changes in the provision for credit losses as follows:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Provision for Credit Losses</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="width: 85%; text-indent: -0.5in; padding-left: 0.5in">Balance at January 31, 2020</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 12%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,003</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt">Current period provision for expected losses</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,681</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt">Write-offs charged against the provision</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,418</div></td>  <td style="font-weight: bold; text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt">Effect of movements in foreign exchange</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">64</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left; padding-bottom: 1pt">Balance at January 31, 2021</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,330</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  </tr>    </table> </div></div><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_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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>29
<FILENAME>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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623848184632">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 6 - Other Receivables<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_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 [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;">Note <div style="display: inline; font-style: italic; font: inherit;">6</div> &#x2013; Other Receivables</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">2020</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="width: 74%; text-align: left">Net working capital adjustments receivable from acquisitions</td>  <td style="width: 1%; font-weight: bold">&nbsp;</td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">237</div></td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left; padding-bottom: 1pt">Other receivables</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">14,593</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">7,294</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">14,830</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">7,294</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Other receivables include receivables related to sales and use taxes, income taxes, non-trade receivables and contract assets. At <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021, </div><div style="display: inline; font-style: italic; font: inherit;">$0.2</div> million (<div style="display: inline; font-style: italic; font: inherit;">nil</div> as at <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2020) </div>of the net working capital adjustments receivable from acquisitions is recoverable from amounts held in escrow related to the respective acquisitions.</div></div><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>nonnum: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>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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623848137768">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 7 - Inventory<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InventoryDisclosureTextBlock', window );">Inventory Disclosure [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-weight: bold;">Note <div style="display: inline; font-style: italic; font: inherit;">7</div> &#x2013; Inventory</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">At <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021 </div>and <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2020, </div>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 years ended <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021, </div><div style="display: inline; font-style: italic; font: inherit;">2020</div> and <div style="display: inline; font-style: italic; font: inherit;">2019,</div> a provision for excess or obsolete inventories has been recorded in cost of revenues of <div style="display: inline; font-style: italic; font: inherit;">nil,</div> <div style="display: inline; font-style: italic; font: inherit;">nil</div> and nominal, respectively.</div></div><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>nonnum: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>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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623848150920">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 8 - Property and Equipment<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock', window );">Property, Plant and Equipment Disclosure [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;">Note <div style="display: inline; font-style: italic; font: inherit;">8</div> &#x2013; Property and Equipment</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;">&nbsp;</div></div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">2020</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td>Cost</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; width: 74%">Computer equipment and software</td>  <td style="width: 1%; font-weight: bold">&nbsp;</td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">37,469</div></td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">34,442</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt">Furniture and fixtures</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,494</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,432</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt">Leasehold improvements</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">807</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">778</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt">Equipment installed with customers</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,654</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,289</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt">Assets under construction</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">998</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">829</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td>&nbsp;</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">42,422</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">38,770</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left">Accumulated depreciation</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt">Computer equipment and software</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">28,123</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">23,730</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt">Furniture and fixtures</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,081</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">816</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt">Leasehold improvements</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">401</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">290</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt">Equipment installed with customers</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">728</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">203</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">30,333</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">25,039</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-bottom: 1pt">Net</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">12,089</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">13,731</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  </tr>    </table> </div></div><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>nonnum: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>32
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623851416744">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 9 - Intangible Assets<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IntangibleAssetsDisclosureTextBlock', window );">Intangible Assets Disclosure [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;">Note <div style="display: inline; font-style: italic; font: inherit;">9</div> - Intangible Assets</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;">&nbsp;</div></div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td style="text-align: right">&nbsp;</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom">  <td style="text-align: right">&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">2020</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td>Cost</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; width: 74%">Customer agreements and relationships</td>  <td style="width: 1%; font-weight: bold">&nbsp;</td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">240,479</div></td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">226,514</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt">Existing technology</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">295,161</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">262,614</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt">Trade names</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8,844</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8,582</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt">Non-compete covenants</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">10,939</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">9,985</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td>&nbsp;</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">555,423</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">507,695</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left">Accumulated amortization</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt">Customer agreements and relationships</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">119,361</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">98,241</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt">Existing technology</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">183,539</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">142,757</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt">Trade names</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5,996</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5,124</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt">Non-compete covenants</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6,535</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4,617</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">315,431</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">250,739</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-bottom: 1pt">Net</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">239,992</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">256,956</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;">&nbsp;</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Intangible assets related to our acquisitions are recorded at their fair value at the acquisition date. The change in intangible assets during the year ended <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021 </div>is primarily due to the acquisitions of Peoplevox, Kontainers and ShipTrack, partially offset by amortization. The balance of the change in intangible assets is due to foreign currency translation.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <!-- Field: Page; Sequence: 25 -->   <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Intangible assets with a finite life are amortized into income over their useful lives. Amortization expense for existing intangible assets is expected to be <div style="display: inline; font-style: italic; font: inherit;">$240.0</div> million over the following periods: <div style="display: inline; font-style: italic; font: inherit;">$53.9</div> million for <div style="display: inline; font-style: italic; font: inherit;">2022,</div> <div style="display: inline; font-style: italic; font: inherit;">$46.4</div> million for <div style="display: inline; font-style: italic; font: inherit;">2023,</div> <div style="display: inline; font-style: italic; font: inherit;">$34.3</div> million for <div style="display: inline; font-style: italic; font: inherit;">2024,</div> <div style="display: inline; font-style: italic; font: inherit;">$31.5</div> million for <div style="display: inline; font-style: italic; font: inherit;">2025,</div> <div style="display: inline; font-style: italic; font: inherit;">$27.2</div> million for <div style="display: inline; font-style: italic; font: inherit;">2026</div> and <div style="display: inline; font-style: italic; font: inherit;">$46.7</div> million thereafter. Expected future amortization expense is subject to fluctuations in foreign exchange rates and assumes <div style="display: inline; font-style: italic; font: inherit;">no</div> future adjustments to acquired intangible assets.</div></div><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>nonnum: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>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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623855951160">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 10 - Goodwill<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GoodwillDisclosureTextBlock', window );">Goodwill Disclosure [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;">Note <div style="display: inline; font-style: italic; font: inherit;">10</div> &#x2013; Goodwill</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;">&nbsp;</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2019:</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="font-weight: bold">&nbsp;</td>  <td colspan="3" style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid">&nbsp;</td>  <td colspan="3" style="border-top: Black 1pt solid; text-align: right">January 31,</td>  </tr>  <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td colspan="3" style="font-weight: bold; text-align: right; border-bottom: Black 1pt solid">2021</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td colspan="3" style="text-align: right; border-bottom: Black 1pt solid">2020</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="width: 74%">Balance at beginning of period</td>  <td style="width: 1%; font-weight: bold">&nbsp;</td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">523,690</div></td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">378,178</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left">Acquisition of Visual Compliance</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">118,785</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt">Acquisition of CORE</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">12,670</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt">Acquisition of STEPcom</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">10,019</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt">Acquisition of BestTransport</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5,513</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt">Acquisition of Peoplevox</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">15,182</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt">Acquisition of Kontainers</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,461</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt">Acquisition of ShipTrack</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">10,327</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt">Adjustments on account of foreign exchange</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">12,517</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,475</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-bottom: 1pt">Balance at end of period</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">565,177</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">523,690</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  </tr>    </table> </div></div><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>nonnum: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>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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623851552728">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 11 - Accrued Liabilities<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock', window );">Accounts Payable and Accrued Liabilities Disclosure [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;">Note <div style="display: inline; font-style: italic; font: inherit;">11</div> - Accrued Liabilities</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td style="text-align: right">&nbsp;</td>  <td style="font-weight: bold">&nbsp;</td>  <td colspan="3" style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid">&nbsp;</td>  <td colspan="3" style="border-top: Black 1pt solid; text-align: right">January 31,</td>  </tr>  <tr style="vertical-align: bottom">  <td style="text-align: right">&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td colspan="3" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td colspan="3" style="text-align: right; border-bottom: Black 1pt solid">2020</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="width: 74%; text-align: left">Accrued compensation and benefits</td>  <td style="width: 1%; font-weight: bold">&nbsp;</td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">24,643</div></td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">20,613</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left">Accrued professional fees</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,188</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,010</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left; padding-bottom: 1pt">Other accrued liabilities</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">13,048</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">13,253</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">38,879</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">34,876</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">Other accrued liabilities include accrued expenses related to <div style="display: inline; font-style: italic; font: inherit;">third</div> party resellers and royalties, suppliers, accrued restructuring charges and accrued contingent acquisition purchase consideration.</div></div><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>nonnum: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>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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623849786696">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 12 - Long-term Debt<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtDisclosureTextBlock', window );">Debt Disclosure [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;">Note <div style="display: inline; font-style: italic; font: inherit;">12</div> &#x2013; Long-Term Debt</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">On <div style="display: inline; font-style: italic; font: inherit;"> January 25, 2019, </div>we amended and increased our senior secured revolving credit facility. The amended facility is now a <div style="display: inline; font-style: italic; font: inherit;">$350.0</div> 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 <div style="display: inline; font-style: italic; font: inherit;">$500.0</div> million. The credit facility has a <div style="display: inline; font-style: italic; font: inherit;">five</div>-year maturity with <div style="display: inline; font-style: italic; font: inherit;">no</div> fixed repayment dates prior to the end of the <div style="display: inline; font-style: italic; font: inherit;">five</div>-year term ending <div style="display: inline; font-style: italic; font: inherit;"> January 2024. </div>Borrowings under the credit facility are secured by a <div style="display: inline; font-style: italic; font: inherit;">first</div> charge over substantially all of Descartes' 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' Acceptance (BA) or London Interbank Offered Rate (LIBOR) plus an additional <div style="display: inline; font-style: italic; font: inherit;">0</div> to <div style="display: inline; font-style: italic; font: inherit;">250</div> 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 <div style="display: inline; font-style: italic; font: inherit;">20</div> to <div style="display: inline; font-style: italic; font: inherit;">40</div> basis points will be charged on all undrawn amounts. The credit facility contains certain customary representations, warranties and guarantees, and covenants.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <!-- Field: Page; Sequence: 26 -->   <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-style: italic; font: inherit;">No</div> amounts were drawn on the credit facility as of <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021 </div>and the balance of <div style="display: inline; font-style: italic; font: inherit;">$350.0</div> million is available for use. We were in compliance with the covenants of the credit facility as of <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021.</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">As at <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021, </div>we had outstanding letters of credit of approximately <div style="display: inline; font-style: italic; font: inherit;">$0.2</div> million (<div style="display: inline; font-style: italic; font: inherit;">$0.2</div> million as at <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2020), </div>which were <div style="display: inline; font-style: italic; font: inherit;">not</div> related to our credit facility.</div></div><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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum: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>36
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623856178200">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 13 - Leases<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeasesTextBlock', window );">Lessee, Operating Leases [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-weight: bold;">Note <div style="display: inline; font-style: italic; font: inherit;">13</div> &#x2013; Leases</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-weight: bold;">&nbsp;</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">We have operating leases for buildings, vehicles and computer equipment. Our leases have remaining terms of up to <div style="display: inline; font-style: italic; font: inherit;">8</div> years, some of which include options to extend the leases for up to <div style="display: inline; font-style: italic; font: inherit;">5</div> years.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">The components of operating lease expense were as follows:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 12pt 0pt 0"><div style="display: inline; font-style: italic;"></div></div><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 12pt 0pt 0"><div style="display: inline; font-style: italic;">Year Ended</div></div></td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right">&nbsp;</div></td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">January 31, 2021</div></div></td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">January 31, 2020</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="width: 70%; text-align: left">Operating lease cost</td>  <td style="width: 1%; font-weight: bold">&nbsp;</td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 12%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4,590</div></td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 12%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4,902</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left; padding-bottom: 1pt">Short-term lease cost</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">502</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">866</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left; padding-bottom: 1pt">Total operating lease cost</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5,092</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5,768</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Supplemental cash flow information related to operating leases was as follows:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td style="font-style: italic">Year Ended</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">January 31, 2021</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">January 31, 2020</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="width: 70%; text-align: left">Operating cash outflows from operating leases included in measurement of lease liabilities</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 12%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4,831</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 12%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4,150</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left">New ROU assets obtained in exchange for lease obligations</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,337</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6,439</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Supplemental information related to operating leases was as follows:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">January 31, 2021</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">January 31, 2020</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="width: 70%; text-align: left">Weighted average remaining lease term (years)</td>  <td style="width: 1%; font-weight: bold">&nbsp;</td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 12%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3.8</div></td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 12%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4.3</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td>Weighted average discount rate (%)</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2.5</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2.8</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Maturities of operating lease liabilities were as follows as of <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021:</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td style="text-align: left">Years Ended January 31,</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Operating Leases</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; width: 85%; text-align: left">2022</td>  <td style="width: 1%; font-weight: bold">&nbsp;</td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 12%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4,544</div></td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left">2023</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,480</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left">2024</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,689</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left">2025</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,725</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left">2026</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">954</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left"><div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt">2027 and thereafter</div></td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">420</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left"><div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt">Total lease payments</div></td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">13,812</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left"><div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt">Less: imputed interest</div></td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(749</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left"><div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt">Total lease obligations</div></td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">13,063</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left"><div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt">Current</div></td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4,168</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left"><div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt">Long-term</div></td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8,895</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  </tr>    </table> </div></div><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>nonnum: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>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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623847359832">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 14 - 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, 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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock', window );">Commitments and Contingencies Disclosure [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;">Note <div style="display: inline; font-style: italic; font: inherit;">14</div> - Commitments, Contingencies and Guarantees</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">&nbsp;</div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">Commitments</div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">As described in Note <div style="display: inline; font-style: italic; font: inherit;">2</div> 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 <div style="display: inline; font-style: italic; font: inherit;">not</div> yet been settled in cash. As such, we had an unrecognized aggregate liability for the unvested DSUs and CRSUs of <div style="display: inline; font-style: italic; font: inherit;">nil</div> and <div style="display: inline; font-style: italic; font: inherit;">$1.5</div> million, respectively, at <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021. </div>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 <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021, </div>we had equity derivatives for <div style="display: inline; font-style: italic; font: inherit;">226,525</div> Descartes common shares and a DSU liability for <div style="display: inline; color: black"><div style="display: inline; font-style: italic; font: inherit;">226,525</div> Descartes common shares, resulting in <div style="display: inline; font-style: italic; font: inherit;">no</div> net exposure resulting from changes to our share price</div>.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0">Contingencies</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;">not</div> presently determinable but, in the opinion of management after consulting with legal counsel, the ultimate aggregate potential liability is <div style="display: inline; font-style: italic; font: inherit;">not</div> currently expected to have a material effect on our results of operations or financial position.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; text-decoration: underline;">Product Warranties</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;">not</div> encountered material costs as a result of such obligations and have <div style="display: inline; font-style: italic; font: inherit;">not</div> accrued any liabilities related to such obligations in our consolidated financial statements.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; text-decoration: underline;">Business combination agreements</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">In respect of our acquisitions of CORE, Kontainers and ShipTrack, up to <div style="display: inline; font-style: italic; font: inherit;">$31.6</div> million in cash <div style="display: inline; font-style: italic; font: inherit;"> may </div>become payable if certain revenue performance targets are met in the <div style="display: inline; font-style: italic; font: inherit;">two</div> years following the acquisition. A balance of <div style="display: inline; font-style: italic; font: inherit;">$4.7</div> million is accrued related to the fair value of this contingent consideration as at <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021.</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0">Guarantees</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">In the normal course of business, we enter into a variety of agreements that <div style="display: inline; font-style: italic; font: inherit;"> may </div>contain features that meet the definition of a guarantee under ASC Topic <div style="display: inline; font-style: italic; font: inherit;">460,</div> &#x201c;Guarantees&#x201d;. The following lists our significant guarantees:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; text-decoration: underline;">Intellectual property indemnification obligations</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">We provide indemnifications of varying scope to our customers against claims of intellectual property infringement made by <div style="display: inline; font-style: italic; font: inherit;">third</div> 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 <div style="display: inline; font-style: italic; font: inherit;">not</div> 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 <div style="display: inline; font-style: italic; font: inherit;">not</div> encountered material costs as a result of such indemnification obligations.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; text-decoration: underline;">Other indemnification agreements</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;">third</div> party claims that <div style="display: inline; font-style: italic; font: inherit;"> may </div>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 <div style="display: inline; font-style: italic; font: inherit;">not</div> made any significant payments under such indemnities.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <!-- Field: Page; Sequence: 28 -->   <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;">not</div> 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 <div style="display: inline; font-style: italic; font: inherit;">not</div> accrued any liability in our consolidated financial statements for the guarantees or indemnities described above.</div></div><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 440<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=121559207&amp;loc=d3e25336-109308<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 (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121559207&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>nonnum: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>38
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623848109928">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 15 - Share Capital<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_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 [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;">Note <div style="display: inline; font-style: italic; font: inherit;">15</div> &#x2013; Share Capital</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;">&nbsp;</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">On <div style="display: inline; font-style: italic; font: inherit;"> June 6, 2018, </div>we filed a final short-form base shelf prospectus (the <div style="display: inline; font-style: italic; font: inherit;">&#x201c;2018</div> Base Shelf Prospectus&#x201d;), that allowed 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 <div style="display: inline; font-style: italic; font: inherit;">one</div> of the aforementioned common shares, preferred shares, debt securities, subscription receipts and/ or warrants offered together as a unit. These securities could have been offered separately or together, in separate series, in amounts, at prices and on terms to be set forth in <div style="display: inline; font-style: italic; font: inherit;">one</div> or more shelf prospectus supplements. The aggregate initial offering price of securities that could have been sold by us (or certain of our current or future shareholders) pursuant to the <div style="display: inline; font-style: italic; font: inherit;">2018</div> Base Shelf Prospectus during the <div style="display: inline; font-style: italic; font: inherit;">25</div>-month period that the <div style="display: inline; font-style: italic; font: inherit;">2018</div> Base Shelf Prospectus, including any amendments thereto, remained valid was limited to an aggregate of <div style="display: inline; font-style: italic; font: inherit;">$750</div> million.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">On <div style="display: inline; font-style: italic; font: inherit;"> June 10, 2019, </div>we completed a public offering of common shares in the United States and Canada at a price of <div style="display: inline; font-style: italic; font: inherit;">$35.50</div> per common share pursuant to the <div style="display: inline; font-style: italic; font: inherit;">2018</div> Base Shelf Prospectus <div style="display: inline; color: black">and related prospectus supplement filed in connection with the offering (the &#x201c;Offering&#x201d;)</div>. The total offering of <div style="display: inline; font-style: italic; font: inherit;">6,900,000</div> common shares included the exercise in full by the underwriters of the <div style="display: inline; font-style: italic; font: inherit;">15%</div> over-allotment option, for aggregate gross proceeds to Descartes of <div style="display: inline; font-style: italic; font: inherit;">$245.0</div> million. Net proceeds to Descartes were approximately <div style="display: inline; font-style: italic; font: inherit;">$236.6</div> million once expenses associated with the Offering were deducted inclusive of the related deferred tax benefit on share issuance costs. The <div style="display: inline; font-style: italic; font: inherit;">2018</div> Base Shelf Prospectus expired in <div style="display: inline; font-style: italic; font: inherit;"> July 2020.</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">On <div style="display: inline; font-style: italic; font: inherit;"> July 16, 2020, </div>we filed a final short-form base shelf prospectus (the <div style="display: inline; font-style: italic; font: inherit;">&#x201c;2020</div> Base Shelf Prospectus&#x201d;), allowing us to offer and issue the following securities: (i) common shares; (ii) preferred shares; (iii) senior or subordinated unsecured debt securities; (iv) subscription receipts; (v) warrants; and (vi) securities comprised of more than <div style="display: inline; font-style: italic; font: inherit;">one</div> of the aforementioned common shares, preferred shares, debt securities, subscription receipts and/ or warrants offered together as a unit. These securities <div style="display: inline; font-style: italic; font: inherit;"> may </div>be offered separately or together, in separate series, in amounts, at prices and on terms to be set forth in <div style="display: inline; font-style: italic; font: inherit;">one</div> or more shelf prospectus supplements. The aggregate initial offering price of securities that <div style="display: inline; font-style: italic; font: inherit;"> may </div>be sold by us (or certain of our current or future shareholders) pursuant to the <div style="display: inline; font-style: italic; font: inherit;">2020</div> Base Shelf Prospectus during the <div style="display: inline; font-style: italic; font: inherit;">25</div>-month period that the <div style="display: inline; font-style: italic; font: inherit;">2020</div> Base Shelf Prospectus, including any amendments thereto, remains valid is limited to an aggregate of <div style="display: inline; font-style: italic; font: inherit;">$1</div> billion. <div style="display: inline; font-style: italic; font: inherit;">No</div> securities have yet been sold pursuant to the <div style="display: inline; font-style: italic; font: inherit;">2020</div> Base Shelf Prospectus.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <!-- Field: Page; Sequence: 29 -->   <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">The following table sets forth the common shares outstanding (number of shares in thousands):</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom">  <td style="font-style: italic">(thousands of shares)</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">2020</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">2019</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="width: 61%; text-align: left">Balance, beginning of year</td>  <td style="width: 1%; font-weight: bold">&nbsp;</td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">84,156</div></td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">76,865</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">76,773</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt">Shares issued:</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 20pt; text-align: left">Stock options and share units exercised</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">338</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">95</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">46</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 20pt">Issuance of common shares</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6,900</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 20pt; text-align: left; padding-bottom: 1pt">Acquisitions (Note 3)</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">296</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">46</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left; padding-bottom: 1pt">Balance, end of year</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">84,494</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">84,156</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">76,865</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Cash flows provided from stock options and share units exercised <div style="display: inline; color: black">during <div style="display: inline; font-style: italic; font: inherit;">2021,</div> <div style="display: inline; font-style: italic; font: inherit;">2020</div> and <div style="display: inline; font-style: italic; font: inherit;">2019</div> were approximately <div style="display: inline; font-style: italic; font: inherit;">$6.2</div> million, <div style="display: inline; font-style: italic; font: inherit;">$1.5</div> million and <div style="display: inline; font-style: italic; font: inherit;">$0.5</div> million, respectively.</div></div></div><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>nonnum: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>39
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623848109928">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 16 - Earnings Per Share<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareTextBlock', window );">Earnings Per Share [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-weight: bold;">Note <div style="display: inline; font-style: italic; font: inherit;">16</div> - Earnings Per Share</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">The following table sets forth the computation of basic and diluted earnings per share (&#x201c;EPS&#x201d;) (number of shares in thousands):</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td style="font-style: italic">Year Ended</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style=" margin-top: 0; margin-bottom: 0">&nbsp;</div></td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style=" margin-top: 0; margin-bottom: 0">January 31,</div> <div style=" margin-top: 0; margin-bottom: 0">2021</div></td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style=" margin-top: 0; margin-bottom: 0">&nbsp;</div></td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" margin-top: 0; margin-bottom: 0">&nbsp;</div></td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" margin-top: 0; margin-bottom: 0">January 31,</div> <div style=" margin-top: 0; margin-bottom: 0">2020</div></td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" margin-top: 0; margin-bottom: 0">&nbsp;</div></td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" margin-top: 0; margin-bottom: 0">&nbsp;</div></td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" margin-top: 0; margin-bottom: 0">January 31,</div> <div style=" margin-top: 0; margin-bottom: 0">2019</div></td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" margin-top: 0; margin-bottom: 0">&nbsp;</div></td>  </tr>  <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td>&nbsp;</td>  <td colspan="3" style="text-align: right">&nbsp;</td>  <td>&nbsp;</td>  <td colspan="3" style="text-align: right">&nbsp;</td>  <td>&nbsp;</td>  <td colspan="3" style="text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="width: 61%; text-align: left; padding-bottom: 1pt">Net income for purposes of calculating basic and diluted earnings per share</td>  <td style="width: 1%; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">52,100</div></td>  <td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; width: 1%; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; width: 1%; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">36,997</div></td>  <td style="border-bottom: Black 1pt solid; width: 1%; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; width: 1%; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; width: 1%; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">31,277</div></td>  <td style="border-bottom: Black 1pt solid; width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td>Weighted average shares outstanding</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">84,360</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">81,659</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">76,832</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left">Dilutive effect of employee stock options</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">358</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">318</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">205</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left; padding-bottom: 1pt">Dilutive effect of restricted and performance share units</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,038</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">890</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">754</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left; padding-bottom: 1pt">Weighted average common and common equivalent shares outstanding</td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">85,756</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">82,867</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">77,791</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td>Earnings per share</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt">Basic</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">0.62</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">0.45</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">0.41</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; padding-bottom: 1pt">Diluted</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">0.61</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">0.45</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">0.40</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">For the years ended <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021, </div><div style="display: inline; font-style: italic; font: inherit;">2020</div> and <div style="display: inline; font-style: italic; font: inherit;">2019,</div> the application of the treasury stock method excluded <div style="display: inline; font-style: italic; font: inherit;">1,750,</div> <div style="display: inline; font-style: italic; font: inherit;">350,464</div> and <div style="display: inline; font-style: italic; font: inherit;">271,869</div> 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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">For the years ended <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021, </div><div style="display: inline; font-style: italic; font: inherit;">2020</div> and <div style="display: inline; font-style: italic; font: inherit;">2019,</div> <div style="display: inline; font-style: italic; font: inherit;">71,161,</div> <div style="display: inline; font-style: italic; font: inherit;">5,909</div> and <div style="display: inline; font-style: italic; font: inherit;">nil</div> 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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Additionally, for the years ended <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021, </div><div style="display: inline; font-style: italic; font: inherit;">2020</div> and <div style="display: inline; font-style: italic; font: inherit;">2019,</div> the application of the treasury stock method excluded PSUs and RSUs of <div style="display: inline; font-style: italic; font: inherit;">43,002,</div> <div style="display: inline; font-style: italic; font: inherit;">nil</div> and <div style="display: inline; font-style: italic; font: inherit;">nil,</div> 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.</div></div><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=6371337&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=6371337&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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>40
<FILENAME>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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623848628088">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 17 - 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, 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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock', window );">Share-based Payment Arrangement [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;">Note <div style="display: inline; font-style: italic; font: inherit;">17</div> - Stock-Based Compensation Plans</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Total estimated stock-based compensation expense recognized in our consolidated statement of operations was as follows:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td style="font-style: italic">Year Ended</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">2020</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">2019</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="width: 61%">Cost of revenues</td>  <td style="width: 1%; font-weight: bold">&nbsp;</td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">319</div></td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">220</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">160</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left">Sales and marketing</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">896</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">706</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">436</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left">Research and development</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">404</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">281</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">184</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left; padding-bottom: 1pt">General and administrative</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4,694</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,702</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,930</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left; padding-bottom: 1pt">Effect on net income</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6,313</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4,909</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,710</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Differences between how GAAP and applicable income tax laws treat the amount and timing of recognition of stock-based compensation expense <div style="display: inline; font-style: italic; font: inherit;"> may </div>result in a deferred tax asset. We have recorded a valuation allowance against any such deferred tax asset except for <div style="display: inline; font-style: italic; font: inherit;">$0.7</div> million (<div style="display: inline; font-style: italic; font: inherit;">$0.7</div> million at <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2020) </div>recognized in the United States. The tax benefit realized in connection with stock options exercised during <div style="display: inline; font-style: italic; font: inherit;">2021,</div> <div style="display: inline; font-style: italic; font: inherit;">2020</div> and <div style="display: inline; font-style: italic; font: inherit;">2019</div> was nominal, <div style="display: inline; font-style: italic; font: inherit;">$0.1</div> million and <div style="display: inline; font-style: italic; font: inherit;">$0.2</div> million, respectively.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">Stock Options</div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">As of <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021, </div>we had <div style="display: inline; font-style: italic; font: inherit;">1,147,720</div> stock options granted and outstanding under our shareholder-approved stock option plan and <div style="display: inline; font-style: italic; font: inherit;">3,303,444</div> remained available for grant.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">As of <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021, </div><div style="display: inline; font-style: italic; font: inherit;">$5.1</div> 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 <div style="display: inline; font-style: italic; font: inherit;">2.7</div> years. The total fair value of stock options vested during <div style="display: inline; font-style: italic; font: inherit;">2021</div> was <div style="display: inline; font-style: italic; font: inherit;">$2.3</div> million.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">The total number of options granted during the years ended <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021, </div><div style="display: inline; font-style: italic; font: inherit;">2020</div> and <div style="display: inline; font-style: italic; font: inherit;">2019</div> was <div style="display: inline; font-style: italic; font: inherit;">381,859,</div> <div style="display: inline; font-style: italic; font: inherit;">367,173</div> and <div style="display: inline; font-style: italic; font: inherit;">272,144,</div> respectively. The weighted average grant-date fair value of options granted during the years ended <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021, </div><div style="display: inline; font-style: italic; font: inherit;">2020</div> and <div style="display: inline; font-style: italic; font: inherit;">2019</div> was <div style="display: inline; font-style: italic; font: inherit;">$10.19,</div> <div style="display: inline; font-style: italic; font: inherit;">$8.99</div> and <div style="display: inline; font-style: italic; font: inherit;">$7.10</div> per option, respectively.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">The weighted-average assumptions were as follows:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td style="font-style: italic">Year Ended</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">January 31, 2021</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">January 31, 2020</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">January 31, 2019</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left">Expected dividend yield (%)</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="width: 61%; text-align: left">Expected volatility (%)</td>  <td style="width: 1%; font-weight: bold">&nbsp;</td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">26.4</div></td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">23.5</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">23.6</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left">Risk-free rate (%)</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">0.7</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1.4</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2.0</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left">Expected option life (years)</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <!-- Field: Page; Sequence: 31 -->   <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">A summary of option activity under all of our plans is presented as follows:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td style="text-align: center">&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Number of Stock Options Outstanding</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Weighted-</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Average Exercise</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Price</div></div></td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td>  <td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Weighted- Average Remaining Contractual Life (years)</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right">&nbsp;</div></td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Aggregate Intrinsic</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Value</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">(in millions)</div></div></td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="width: 40%">Balance at January 31, 2019</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 12%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">879,338</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">$</td>  <td style="width: 12%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">21.41</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 12%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4.7</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">$</td>  <td style="width: 12%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8.7</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt">Granted</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">367,173</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">$</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">38.06</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt">Exercised</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(94,970</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">$</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">15.62</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; padding-bottom: 1pt">Forfeited</td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(23,719</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">)</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">$</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">31.93</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td>Balance at January 31, 2020</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,127,822</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">$</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">26.82</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4.6</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">$</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">20.2</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt">Granted</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">381,859</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">$</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">41.51</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt">Exercised</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(338,342</div></td>  <td style="font-weight: bold; text-align: left">)</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">$</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">18.43</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; padding-bottom: 1pt">Forfeited</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(23,619</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">)</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">$</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">33.88</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-bottom: 1pt">Balance at January 31, 2021</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,147,720</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">33.77</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4.9</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">28.1</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td>&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left; padding-bottom: 1pt">Vested or expected to vest at January 31, 2021</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,147,720</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">33.77</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4.9</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">28.1</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td>&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-bottom: 1pt">Exercisable at January 31, 2021</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">646,065</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">29.52</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4.3</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">18.6</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">The total intrinsic value of options exercised during the years ended <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021, </div><div style="display: inline; font-style: italic; font: inherit;">2020</div> and <div style="display: inline; font-style: italic; font: inherit;">2019</div> was approximately <div style="display: inline; font-style: italic; font: inherit;">$10.8</div> million, <div style="display: inline; font-style: italic; font: inherit;">$2.0</div> million and <div style="display: inline; font-style: italic; font: inherit;">$0.8</div> million, respectively.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Options outstanding and options exercisable as at <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021 </div>by range of exercise price are as follows:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td colspan="3" style="text-align: center">&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td colspan="11" style="border-top: Black 1pt solid; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Options Outstanding</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td colspan="7" style="border-top: Black 1pt solid; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Options Exercisable</td>  </tr>  <tr style="vertical-align: bottom">  <td colspan="3" style="font-style: italic; text-align: left">Range of Exercise Prices</td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">Weighted <br />Average Exercise Price</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">Number of Stock Options</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">Weighted Average Remaining Contractual Life (years)</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">Weighted Average Exercise Price</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">Number of Stock Options</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: center; width: 7%; padding-left: 0pt">$11.32</td>  <td style="text-align: center; padding-left: 0pt; width: 7%"><div style="display: inline; font-style: italic; font: inherit;">&#x2013;</div></td>  <td style="text-align: center; padding-left: 0pt; width: 7%"><div style="display: inline; font-style: italic; font: inherit;">$22.34</div></td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">$</td>  <td style="width: 13%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">21.06</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 13%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">220,559</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 13%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2.9</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">$</td>  <td style="width: 13%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">21.01</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 12%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">203,459</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: center; padding-left: 0pt">$25.65</td>  <td style="text-align: center; padding-left: 0pt"><div style="display: inline; font-style: italic; font: inherit;">&#x2013;</div></td>  <td style="text-align: center; padding-left: 0pt"><div style="display: inline; font-style: italic; font: inherit;">$27.23</div></td>  <td>&nbsp;</td>  <td style="text-align: left">$</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">27.22</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">217,381</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4.2</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">$</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">27.23</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">186,707</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: center; padding-left: 0pt">$37.66</td>  <td style="text-align: center; padding-left: 0pt"><div style="display: inline; font-style: italic; font: inherit;">&#x2013;</div></td>  <td style="text-align: center; padding-left: 0pt"><div style="display: inline; font-style: italic; font: inherit;">$39.30</div></td>  <td>&nbsp;</td>  <td style="text-align: left">$</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">38.09</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">636,869</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5.7</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">$</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">37.96</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">255,899</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: center; padding-left: 0pt">$49.04</td>  <td style="text-align: center; padding-left: 0pt"><div style="display: inline; font-style: italic; font: inherit;">&#x2013;</div></td>  <td style="text-align: center; padding-left: 0pt"><div style="display: inline; font-style: italic; font: inherit;">$55.04</div></td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">$</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">54.11</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">72,911</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6.7</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td colspan="3" style="text-align: center; padding-bottom: 1pt; padding-left: 12pt"><div style="display: inline; font-style: italic; font: inherit;"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></div></td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">33.77</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,147,720</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4.9</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">29.52</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">646,065</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <!-- Field: Page; Sequence: 32 -->   <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; color: black">A summary of the status of our unvested stock options </div>under our shareholder-approved stock option plan <div style="display: inline; color: black">as of <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021 </div>is presented as follows:</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td style="text-align: center">&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Number of Stock Options Outstanding</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Weighted-</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Average Grant-Date Fair Value per Share</div></div></td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="width: 70%">Balance at January 31, 2019</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 12%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">325,218</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">$</td>  <td style="width: 12%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6.18</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt">Granted</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">367,173</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">$</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8.99</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt">Vested</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(259,269</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">$</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6.96</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; padding-bottom: 1pt">Forfeited</td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(23,469</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">)</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">$</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">7.69</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td>Balance at January 31, 2020</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">409,653</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">$</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8.03</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt">Granted</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">381,859</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">$</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">10.19</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt">Vested</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(266,238</div></td>  <td style="font-weight: bold; text-align: left">)</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">$</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8.19</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; padding-bottom: 1pt">Forfeited</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(23,619</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">)</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">$</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4.87</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-bottom: 1pt">Balance at January 31, 2021</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">501,655</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">9.52</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">Performance Share Units</div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">A summary of PSU activity is as follows:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td style="text-align: center">&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Number of PSUs Outstanding</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right">&nbsp;</div></td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Weighted-</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Average Granted Date Fair Value</div></div></td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td>  <td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Weighted- Average Remaining Contractual Life (years)</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Aggregate Intrinsic</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Value</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">(in millions)</div></div></td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="width: 48%">Balance at January 31, 2019</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">530,383</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">$</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">18.02</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5.5</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">$</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">16.6</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt">Granted</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">53,729</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">$</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">53.65</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt">Performance units issued</td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">45,762</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">$</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">23.24</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td>Balance at January 31, 2020</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">629,874</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">$</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">21.19</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5.0</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">$</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">28.2</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt">Granted</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">85,334</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">$</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">54.24</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt">Performance units issued</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">40,665</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">$</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">29.08</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-bottom: 1pt">Balance at January 31, 2021</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">755,873</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">25.17</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4.7</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">44.0</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td>&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left; padding-bottom: 1pt">Vested or expected to vest at January 31, 2021</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">755,873</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">25.17</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4.7</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">44.0</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td>&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-bottom: 1pt">Exercisable at January 31, 2021</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">562,459</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">17.21</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3.5</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">32.8</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">The aggregate intrinsic values represent the total pre-tax intrinsic value (the aggregate closing share price of our common shares on <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021) </div>that would have been received by PSU holders if all PSUs had been vested on <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021.</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">As of <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021, </div><div style="display: inline; font-style: italic; font: inherit;">$4.9</div> million of total unrecognized compensation costs related to non-vested awards is expected to be recognized over a weighted average period of <div style="display: inline; font-style: italic; font: inherit;">1.2</div> years. The total fair value of PSUs vested during <div style="display: inline; font-style: italic; font: inherit;">2021</div> was <div style="display: inline; font-style: italic; font: inherit;">$1.2</div> million.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">&nbsp;</div></div></div> <!-- Field: Page; Sequence: 33 -->   <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;"></div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">Restricted Share Units</div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">A summary of RSU activity is as follows:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td style="text-align: center">&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Number of RSUs Outstanding</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right">&nbsp;</div></td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Weighted-</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Average Granted Date Fair Value</div></div></td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td>  <td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Weighted- Average Remaining Contractual Life (years)</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right">&nbsp;</div></td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Aggregate Intrinsic</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Value</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">(in millions)</div></div></td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="width: 48%">Balance at January 31, 2019</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">337,066</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">$</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">14.42</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5.6</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">$</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">10.6</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; padding-bottom: 1pt">Granted</td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">37,611</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">$</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">38.04</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td>Balance at January 31, 2020</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">374,677</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">$</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">16.57</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5.0</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">$</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">16.8</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; padding-bottom: 1pt">Granted</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">57,518</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">$</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">43.25</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-bottom: 1pt">Balance at January 31, 2021</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">432,195</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">19.98</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4.7</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">25.2</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td>&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left; padding-bottom: 1pt">Vested or expected to vest at January 31, 2021</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">432,195</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">19.98</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4.7</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">25.2</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td>&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-bottom: 1pt">Exercisable at January 31, 2021</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">375,845</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">16.50</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4.1</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">21.9</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">The aggregate intrinsic values represent the total pre-tax intrinsic value (the aggregate closing share price of our common shares on <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021) </div>that would have been received by RSU holders if all RSUs had been vested on <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021.</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">As of <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021, </div><div style="display: inline; font-style: italic; font: inherit;">$2.5</div> million of total unrecognized compensation costs related to non-vested awards is expected to be recognized over a weighted average period of <div style="display: inline; font-style: italic; font: inherit;">1.8</div> years. The total fair value of RSUs vested during <div style="display: inline; font-style: italic; font: inherit;">2021</div> was <div style="display: inline; font-style: italic; font: inherit;">$1.4</div> million.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">Deferred Share Unit Plan</div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">As at <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021, </div>the total number of DSUs held by participating directors was <div style="display: inline; font-style: italic; font: inherit;">226,525</div> (<div style="display: inline; font-style: italic; font: inherit;">251,422</div> at <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2020), </div>representing an aggregate accrued liability of <div style="display: inline; font-style: italic; font: inherit;">$13.8</div> million (<div style="display: inline; font-style: italic; font: inherit;">$11.3</div> million at <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2020). </div>During <div style="display: inline; font-style: italic; font: inherit;">2021,</div> <div style="display: inline; font-style: italic; font: inherit;">23,369</div> DSUs were granted and <div style="display: inline; font-style: italic; font: inherit;">48,266</div> DSUs were redeemed and settled in cash. As at <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021, </div>the unrecognized aggregate liability for the unvested DSUs was <div style="display: inline; font-style: italic; font: inherit;">nil</div> (<div style="display: inline; font-style: italic; font: inherit;">nil</div> at <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2020). </div>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 <div style="display: inline; font-style: italic; font: inherit;">$4.6</div> million, <div style="display: inline; font-style: italic; font: inherit;">$5.0</div> million and <div style="display: inline; font-style: italic; font: inherit;">$2.2</div> million for the years ended <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021, </div><div style="display: inline; font-style: italic; font: inherit;">2020</div> and <div style="display: inline; font-style: italic; font: inherit;">2019,</div> respectively.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <!-- Field: Page; Sequence: 34 -->   <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">Cash-Settled Restricted Share Unit Plan</div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">A summary of activity under our CRSU plan is as follows:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td style="text-align: center">&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Number of CRSUs Outstanding</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Weighted- Average Remaining Contractual Life (years)</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="width: 74%">Balance at January 31, 2019</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">45,063</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1.6</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt">Granted</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">30,086</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt">Vested and settled in cash</td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(32,422</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">)</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td>Balance at January 31, 2020</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">42,727</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1.6</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt">Granted</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">26,629</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left">Vested and settled in cash</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(30,340</div></td>  <td style="font-weight: bold; text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; padding-bottom: 1pt">Forfeited</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(248</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">)</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-bottom: 1pt">Balance at January 31, 2021</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">38,628</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1.5</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td>&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-bottom: 1pt">Non-vested at January 31, 2021</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">38,628</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1.5</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;">$0.9</div> million at <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021 (</div><div style="display: inline; font-style: italic; font: inherit;">$0.8</div> million at <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2020). </div>As at <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021, </div>the unrecognized aggregate liability for the unvested CRSUs was <div style="display: inline; font-style: italic; font: inherit;">$1.5</div> million (<div style="display: inline; font-style: italic; font: inherit;">$1.1</div> million at <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2020). </div>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 <div style="display: inline; font-style: italic; font: inherit;">$1.1</div> million, <div style="display: inline; font-style: italic; font: inherit;">$0.9</div> million and <div style="display: inline; font-style: italic; font: inherit;">$0.8</div> million for the years ended <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021, </div><div style="display: inline; font-style: italic; font: inherit;">2020</div> and <div style="display: inline; font-style: italic; font: inherit;">2019,</div> respectively.</div></div><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>nonnum: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>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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623851411160">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 18 - Income Taxes<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureTextBlock', window );">Income Tax Disclosure [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;">Note <div style="display: inline; font-style: italic; font: inherit;">18</div> - Income Taxes</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;">&nbsp;</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Income before income taxes is earned in the following tax jurisdictions:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td style="font-style: italic">Year Ended</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">2020</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">2019</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td>&nbsp;</td>  <td colspan="3" style="text-align: right">&nbsp;</td>  <td>&nbsp;</td>  <td colspan="3" style="text-align: right">&nbsp;</td>  <td>&nbsp;</td>  <td colspan="3" style="text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="width: 61%">Canada</td>  <td style="width: 1%; font-weight: bold">&nbsp;</td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">31,307</div></td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">19,557</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">16,715</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left">United States</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">26,072</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">19,962</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">11,077</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left; padding-bottom: 1pt">Other countries</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">12,990</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8,516</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">11,718</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">70,369</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">48,035</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">39,510</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <!-- Field: Page; Sequence: 35 -->   <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Income tax expense is incurred in the following jurisdictions:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td style="font-style: italic">Year Ended</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">2020</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">2019</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left">Current income tax expense</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; width: 61%">Canada</td>  <td style="width: 1%; font-weight: bold">&nbsp;</td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,875</div></td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,020</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,037</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left">United States</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(3,050</div></td>  <td style="font-weight: bold; text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,496</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,298</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt">Other countries</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4,921</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">779</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,707</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,746</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5,295</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6,042</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left">Deferred income tax expense (recovery)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt">Canada</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">7,047</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5,008</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,531</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left">United States</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">9,537</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,390</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">67</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt">Other countries</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(2,061</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">)</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(655</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">)</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(407</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">14,523</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5,743</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,191</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">18,269</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">11,038</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8,233</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Income tax expense for <div style="display: inline; font-style: italic; font: inherit;">2021,</div> <div style="display: inline; font-style: italic; font: inherit;">2020</div> and <div style="display: inline; font-style: italic; font: inherit;">2019</div> was <div style="display: inline; font-style: italic; font: inherit;">26%,</div> <div style="display: inline; font-style: italic; font: inherit;">23%</div> and <div style="display: inline; font-style: italic; font: inherit;">21%</div> of income before income taxes, respectively, with current income tax expense being <div style="display: inline; font-style: italic; font: inherit;">5%,</div> <div style="display: inline; font-style: italic; font: inherit;">11%</div> and <div style="display: inline; font-style: italic; font: inherit;">15%</div> of income before income taxes, respectively.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Current income tax expense decreased in <div style="display: inline; font-style: italic; font: inherit;">2021</div> compared to <div style="display: inline; font-style: italic; font: inherit;">2020</div> 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 <div style="display: inline; font-style: italic; font: inherit;"><div style="display: inline; font-style: italic; font: inherit;">$9.3</div></div> million in current income tax expense in <div style="display: inline; font-style: italic; font: inherit;">2021</div> 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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Current income tax expense decreased in <div style="display: inline; font-style: italic; font: inherit;">2020</div> compared to <div style="display: inline; font-style: italic; font: inherit;">2019</div> primarily due to utilization of tax attributes acquired in <div style="display: inline; font-style: italic; font: inherit;">2020.</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Deferred income tax expense increased in <div style="display: inline; font-style: italic; font: inherit;">2021</div> compared to <div style="display: inline; font-style: italic; font: inherit;">2020</div> primarily due to a voluntary change we elected to adopt in accounting for deferred revenue for income tax purposes in the United States.&nbsp;This increase was partially offset by a release in valuation allowance for other jurisdictions.&nbsp;&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Deferred income tax expense increased in <div style="display: inline; font-style: italic; font: inherit;">2020</div> compared to <div style="display: inline; font-style: italic; font: inherit;">2019</div> primarily due to utilization of tax attributes acquired in <div style="display: inline; font-style: italic; font: inherit;">2020.</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <!-- Field: Page; Sequence: 36 -->   <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">The components of the deferred income tax assets and liabilities are as follows:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">2020</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td>Assets</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; width: 74%; text-align: left">Accrued liabilities not currently deductible</td>  <td style="width: 1%; font-weight: bold">&nbsp;</td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4,471</div></td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">14,838</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left">Accumulated net operating losses</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">12,866</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">10,579</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left">Corporate minimum taxes</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,596</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left">Difference between tax and accounting basis of property and equipment</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">23,754</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">33,929</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt">Research and development and other tax credits and expenses</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,649</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">756</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left">Total deferred income tax assets</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">44,336</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">60,102</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td>Liabilities</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left">Difference between tax and accounting basis of intangible assets</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(45,030</div></td>  <td style="font-weight: bold; text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(41,381</div></td>  <td style="text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left">Difference between tax and accounting basis of property and equipment</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt">Other temporary differences</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(2,109</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">)</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,716</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left; padding-bottom: 1pt">Total deferred income tax liabilities</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(47,139</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">)</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(43,097</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left">Net deferred income taxes</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(2,803</div></td>  <td style="font-weight: bold; text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">17,005</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt">Valuation allowance</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(11,365</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">)</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(10,470</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left; padding-bottom: 1pt">Net deferred income taxes, net of valuation allowance</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(14,168</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">)</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6,535</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">As at <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021, </div>we have <div style="display: inline; font-style: italic; font: inherit;">not</div> accrued for foreign withholding taxes and Canadian income taxes applicable to approximately <div style="display: inline; font-style: italic; font: inherit;">$432.7</div> 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 <div style="display: inline; font-style: italic; font: inherit;">no</div> longer be indefinitely invested outside Canada.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">The provision (recovery) for income taxes varies from the expected provision at the statutory rates for the reasons detailed in the table below:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td style="font-style: italic">Year Ended</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">2020</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">2019</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="width: 61%; text-align: left">Income before income taxes</td>  <td style="width: 1%; font-weight: bold">&nbsp;</td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">70,369</div></td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">48,033</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">39,510</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td>&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left">Combined basic Canadian statutory rates</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">26.5</div></td>  <td style="font-weight: bold; text-align: left">%</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">26.5</div></td>  <td style="text-align: left">%</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">26.5</div></td>  <td style="text-align: left">%</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td>&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left">Income tax expense based on the above rates</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">18,648</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">12,729</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">10,470</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left">Increase (decrease) in income taxes resulting from:</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left">Permanent differences including amortization of intangible assets</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">875</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(673</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(133</div></td>  <td style="text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left">Effect of differences between Canadian and foreign tax rates</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(600</div></td>  <td style="font-weight: bold; text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(274</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(172</div></td>  <td style="text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left">Effect of rate changes on current year timing differences</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,063</div></td>  <td style="font-weight: bold; text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(609</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(245</div></td>  <td style="text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left">Adjustments relating to previous periods</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,034</div></td>  <td style="font-weight: bold; text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">94</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(973</div></td>  <td style="text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left">Increase (decrease) in accruals for uncertain tax positions</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,289</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,042</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(515</div></td>  <td style="text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left">Valuation allowance</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">254</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">692</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(344</div></td>  <td style="text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left">Stock based compensation</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">100</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">352</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">231</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt">Other, including foreign exchange</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(200</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">)</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(231</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">)</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(86</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left; padding-bottom: 1pt">Income tax expense</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">18,269</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">11,038</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8,233</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div> <!-- Field: Page; Sequence: 37 -->   <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">We have income tax loss carry forwards which expire as follows:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td style="text-align: left; font-style: italic">Expiry year</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Canada</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">United States</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">EMEA</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Asia Pacific</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Total</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="width: 16%; text-align: left; padding-left: 0pt">2022</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 14%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 14%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 14%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 14%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">285</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%; font-weight: bold">&nbsp;</td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 13%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">285</div></td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left; padding-left: 0pt">2023</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">341</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">50</div></td>  <td style="text-align: left">&nbsp;</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">394</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left; padding-left: 0pt">2024</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">16</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">138</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">67</div></td>  <td style="text-align: left">&nbsp;</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">221</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left; padding-left: 0pt">2025</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">51</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">51</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left; padding-left: 0pt">2026</td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left; padding-left: 0pt">Thereafter</td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6,969</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,807</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">47,832</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,434</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">60,042</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left; padding-bottom: 1pt; padding-left: 9pt">&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6,969</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,877</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">48,311</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,836</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">60,993</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">The following is a tabular reconciliation of the total estimated liability associated with uncertain tax positions taken:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">2020</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="width: 74%; text-align: left">Liability, beginning of year</td>  <td style="width: 1%; font-weight: bold">&nbsp;</td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6,650</div></td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">7,824</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left">Gross increases &#x2013; current period</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,502</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">139</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt">Lapsing due to statutes of limitations</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(759</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">)</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,313</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left; padding-bottom: 1pt">Liability, end of year</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8,393</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6,650</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">We have identified accruals of <div style="display: inline; font-style: italic; font: inherit;">$8.4</div> million with respect to uncertain tax positions as at <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021. </div>It is possible that these accruals for uncertain tax positions will <div style="display: inline; font-style: italic; font: inherit;">not</div> be required in which case up to <div style="display: inline; font-style: italic; font: inherit;">$8.2</div> million of the recorded liability will decrease the effective tax rate in future years if this liability is reversed. We believe that it is reasonably possible that <div style="display: inline; font-style: italic; font: inherit;">$1.5</div> million of the uncertain tax positions could decrease tax expense in the next <div style="display: inline; font-style: italic; font: inherit;">12</div> months relating primarily to tax years becoming statute barred for purposes of future tax examinations by local taxing jurisdictions.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">We recognize accrued interest and penalties related to uncertain tax positions as a current tax expense. As at <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021 </div>and <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2020, </div>the unrecognized tax positions have resulted in <div style="display: inline; font-style: italic; font: inherit;">no</div> material liability for estimated interest and penalties.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Descartes and our subsidiaries file their tax returns as prescribed by the tax laws of the jurisdictions within which they operate. We are <div style="display: inline; font-style: italic; font: inherit;">no</div> longer subject to income tax examinations by tax authorities in our major tax jurisdictions as follows:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom; background-color: White">  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right; padding-bottom: 1pt; border-bottom: Black 1pt solid">Years No Longer Subject to Audit</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left">Tax Jurisdiction</td>  <td style="text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="width: 51%; text-align: left">United States Federal</td>  <td style="width: 49%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2017 and prior</div></td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td>Canada</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2018 and prior</div></td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left">United Kingdom</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2017 and prior</div></td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td>Sweden</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2014 and prior</div></td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td>Norway</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2019 and prior</div></td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td>Netherlands</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2014 and prior</div></td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td>Belgium</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2016 and prior</div></td>  </tr>    </table> </div></div><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=84230637&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=116825942&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=84230637&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=116825942&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=84230637&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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum: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>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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623852757752">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 19 - 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, 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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerTextBlock', window );">Revenue from Contract with Customer [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;">Note <div style="display: inline; font-style: italic; font: inherit;">19</div> &#x2013; Contract Balances, Performance Obligations and Contract Costs</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; text-decoration: underline;">Deferred Revenue</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">The following table presents the changes in the deferred revenue balance as follows:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Deferred Revenue</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="width: 87%; text-indent: -0.5in; padding-left: 0.5in">Balance at January 31, 2019</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">35,091</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left">Recognition of previously deferred revenue</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(30,580</div></td>  <td style="text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left">Deferral of revenue</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">37,408</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left">Increases from business combinations, net</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">551</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left">Effect of movements in foreign exchange</td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(407</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-indent: -0.5in; padding-left: 0.5in">Balance at January 31, 2020</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">42,063</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left">Recognition of previously deferred revenue</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(37,843</div></td>  <td style="font-weight: bold; text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left">Deferral of revenue</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">46,386</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left">Increases from business combinations, net</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">39</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left">Effect of movements in foreign exchange</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">646</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-bottom: 1pt; text-indent: -15pt; padding-left: 15pt">Balance at January 31, 2021</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">51,291</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left">Current</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">49,878</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left">Long-term</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,413</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; text-decoration: underline;">Performance Obligations</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">As of <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021, </div>approximately <div style="display: inline; font-style: italic; font: inherit;">$297.6</div> 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 <div style="display: inline; font-style: italic; font: inherit;">80%</div> of these remaining performance obligations over the next <div style="display: inline; font-style: italic; font: inherit;">24</div> months with the balance recognized thereafter.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; text-decoration: underline;">Contract Assets</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">The following table presents the changes in the contract assets balance as follows:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Contract Assets</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="width: 87%; text-indent: -0.5in; padding-left: 0.5in">Balance at January 31, 2019</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">812</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left">Transfers to trade receivables from contract assets</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(490</div></td>  <td style="text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left">Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">791</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left">Effect of movements in foreign exchange</td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(6</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-indent: -0.5in; padding-left: 0.5in">Balance at January 31, 2020</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,107</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left">Transfers to trade receivables from contract assets</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(563</div></td>  <td style="font-weight: bold; text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt; text-align: left">Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">783</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; text-align: left">Effect of movements in foreign exchange</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">26</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-bottom: 1pt; text-indent: -15pt; padding-left: 15pt">Balance at January 31, 2021</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,353</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; text-decoration: underline;">Contract Costs</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Capitalized contract costs net of accumulated amortization is <div style="display: inline; font-style: italic; font: inherit;">$12.9</div> million at <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021 (</div><div style="display: inline; font-style: italic; font: inherit;">$9.8</div> million at <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2020). </div>Capitalized contract costs are amortized consistent with the pattern of transfer to the customer for the goods and services to which the asset relates. <div style="display: inline; color: black">The total contract cost amortization included in sales and marketing expenses was approximately <div style="display: inline; font-style: italic; font: inherit;">$3.3</div> million, <div style="display: inline; font-style: italic; font: inherit;">$2.5</div> million and <div style="display: inline; font-style: italic; font: inherit;">$1.8</div> million for the years ended <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021, </div><div style="display: inline; font-style: italic; font: inherit;">2020</div> and <div style="display: inline; font-style: italic; font: inherit;">2019,</div> respectively. </div></div></div><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=121604090&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=121604090&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=121604090&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=121604090&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=121604090&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=121604090&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=121604090&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=121604090&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=121604090&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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>43
<FILENAME>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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623851484456">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 20 - Other Charges<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock', window );">Other Income and Other Expense Disclosure [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;">Note <div style="display: inline; font-style: italic; font: inherit;">20</div> - Other Charges</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Other charges are comprised of acquisition-related costs, contingent consideration adjustments and restructuring initiatives which have been undertaken from time to time under various restructuring plans. Acquisition-related costs primarily include advisory services, administrative costs and retention bonuses to employees joining by way of an acquisition, and collectively relate to completed and prospective acquisitions.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">The following tables shows the components of other charges as follows:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td style="font-style: italic">Year Ended</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">2020</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">2019</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="width: 61%; text-align: left">Acquisition-related costs</td>  <td style="width: 1%; font-weight: bold">&nbsp;</td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,981</div></td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,457</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,187</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left">Contingent consideration adjustments</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,946</div></td>  <td style="font-weight: bold; text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">340</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">591</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left; padding-bottom: 1pt">Restructuring plans</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,300</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">20</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,335</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,797</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,798</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">Fiscal <div style="display: inline; font-style: italic; font: inherit;">2021</div> Restructuring Plan</div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">In the <div style="display: inline; font-style: italic; font: inherit;">second</div> quarter of fiscal <div style="display: inline; font-style: italic; font: inherit;">2021,</div> management approved and began to implement a restructuring plan (the &#x201c;Fiscal <div style="display: inline; font-style: italic; font: inherit;">2021</div> Restructuring Plan&#x201d;) to reduce operating expenses. To date, <div style="display: inline; font-style: italic; font: inherit;">$2.3</div> 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 expected remaining workforce reduction and office closure costs of approximately <div style="display: inline; font-style: italic; font: inherit;">$0.1</div> million.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">The following table shows the changes in the restructuring provision for the Fiscal <div style="display: inline; font-style: italic; font: inherit;">2021</div> Restructuring Plan:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right; text-indent: 1.5pt">&nbsp;</div></td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right; text-indent: 1.5pt"><div style="display: inline; font-weight: bold;">Workforce</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right; text-indent: 1.5pt"><div style="display: inline; font-weight: bold;">Reduction</div></div></td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right; text-indent: 1.5pt"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td>  <td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Office Closures</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Total</td>  <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td>Balance at January 31, 2020</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="width: 61%; text-align: left; padding-left: 10pt">Accruals and adjustments</td>  <td style="width: 1%; font-weight: bold">&nbsp;</td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,717</div></td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 1%; font-weight: bold">&nbsp;</td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">583</div></td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 1%; font-weight: bold">&nbsp;</td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,300</div></td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left; padding-left: 10pt">Cash draw downs</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,657</div></td>  <td style="font-weight: bold; text-align: left">)</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(583</div></td>  <td style="font-weight: bold; text-align: left">)</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(2,240</div></td>  <td style="font-weight: bold; text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left; padding-bottom: 1pt; padding-left: 10pt">Foreign exchange</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">10</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">10</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-bottom: 1pt">Balance at January 31, 2021</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">70</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">70</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  </tr>    </table> </div></div><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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>44
<FILENAME>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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623851285768">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 21 - 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, 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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashFlowSupplementalDisclosuresTextBlock', window );">Cash Flow, Supplemental Disclosures [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;">Note <div style="display: inline; font-style: italic; font: inherit;">21</div> &#x2013; Supplemental Cash Flow Information</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">The following tables presents the cash flow changes in operating asset and liabilities:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td style="font-style: italic">Year Ended</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">2020</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">2019</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="width: 61%; text-align: left">Trade accounts receivable</td>  <td style="width: 1%; font-weight: bold">&nbsp;</td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">143</div></td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,733</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(135</div></td>  <td style="width: 1%; text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left">Other accounts receivable</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(7,098</div></td>  <td style="font-weight: bold; text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(2,547</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(451</div></td>  <td style="text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left">Prepaid expenses and other</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(5,029</div></td>  <td style="font-weight: bold; text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(5,942</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(4,466</div></td>  <td style="text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td>Inventory</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">99</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(345</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">74</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left">Accounts payable</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(686</div></td>  <td style="font-weight: bold; text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,768</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,065</div></td>  <td style="text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left">Accrued liabilities</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(999</div></td>  <td style="font-weight: bold; text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,265</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,570</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left">Income taxes payable</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,835</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,550</div></td>  <td style="text-align: left">)</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(2,423</div></td>  <td style="text-align: left">)</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="text-align: left">Operating leases</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">283</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">546</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left; padding-bottom: 1pt">Deferred revenue</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5,877</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(4,184</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">)</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,047</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(3,575</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">)</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(5,256</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">)</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(3,849</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">)</td>  </tr>    </table> </div></div><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>nonnum: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>45
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623851511944">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 22 - Segmented Information<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SegmentReportingDisclosureTextBlock', window );">Segment Reporting Disclosure [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;">Note <div style="display: inline; font-style: italic; font: inherit;">22</div> - Segmented Information</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;">one</div> reportable business segment providing logistics technology solutions. The following tables provide our disaggregated revenue information by geographic location of customer and revenue type:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td style="font-style: italic">Year Ended</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">2020</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">2019</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td>Revenues</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; width: 61%">United States</td>  <td style="width: 1%; font-weight: bold">&nbsp;</td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">211,232</div></td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">202,814</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">165,115</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt">Europe, Middle-East and Africa</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">94,163</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">82,596</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">80,094</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt">Canada</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">29,388</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">27,304</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">18,167</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt">Asia Pacific</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">13,881</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">13,077</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">11,795</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">348,664</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">325,791</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">275,171</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td style="font-style: italic">Year Ended</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">2020</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">2019</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td>Revenues</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 10pt; width: 61%">Services</td>  <td style="width: 1%; font-weight: bold">&nbsp;</td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">309,731</div></td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">284,654</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">241,543</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-left: 10pt">Professional services and other</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">33,879</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">33,555</div></td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">27,774</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-bottom: 1pt; padding-left: 10pt">Licenses</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5,054</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">7,582</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5,854</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">348,664</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">325,791</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">275,171</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  </tr>    </table> </div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <!-- Field: Page; Sequence: 41 -->   <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0">    <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="text-align: center; font-weight: bold">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-top: Black 1pt solid; text-align: right">January 31,</td>  <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom">  <td>&nbsp;</td>  <td style="text-align: center; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right">2020</td>  <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="font-weight: normal; text-align: left">Total long-lived assets</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right">&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="width: 74%; text-align: left; padding-left: 7.5pt">United States</td>  <td style="width: 1%; font-weight: bold">&nbsp;</td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">92,442</div></td>  <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td>  <td style="width: 1%">&nbsp;</td>  <td style="width: 1%; text-align: left">&nbsp;</td>  <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">114,980</div></td>  <td style="width: 1%; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left; padding-left: 7.5pt">Europe, Middle-East and Africa</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">39,769</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">31,299</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-left: 7.5pt">Canada</td>  <td style="font-weight: bold">&nbsp;</td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">107,472</div></td>  <td style="font-weight: bold; text-align: left">&nbsp;</td>  <td>&nbsp;</td>  <td style="text-align: left">&nbsp;</td>  <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">111,264</div></td>  <td style="text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)">  <td style="text-align: left; padding-bottom: 1pt; padding-left: 7.5pt">Asia Pacific</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">12,398</div></td>  <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">13,144</div></td>  <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td>  </tr>  <tr style="vertical-align: bottom; background-color: White">  <td style="padding-bottom: 1pt">&nbsp;</td>  <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">252,081</div></td>  <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">270,687</div></td>  <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td>  </tr>    </table> </div></div><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=120311839&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=120311839&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=120311839&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=120311839&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=120311839&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=120311839&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=120311839&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=120311839&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=120311839&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=120311839&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=120311839&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=120311839&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=120311839&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>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>46
<FILENAME>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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623851318280">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 23 - Subsequent Event<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SubsequentEventsTextBlock', window );">Subsequent Events [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;">Note <div style="display: inline; font-style: italic; font: inherit;">23</div> &#x2013; Subsequent Event</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">On <div style="display: inline; font-style: italic; font: inherit;"> February 26, 2021, </div>Descartes acquired all of the shares of VitaDex Solutions, LLC, doing business as QuestaWeb, a US-based provider of foreign trade zone and customs compliance solutions. The purchase price for the acquisition was approximately <div style="display: inline; font-style: italic; font: inherit;">$36.0</div> million, net of cash acquired, which was funded from cash on hand. As of the issue date of these consolidated financial statements, the fair value of the acquired assets and liabilities has <div style="display: inline; font-style: italic; font: inherit;">not</div> been determined.</div></div><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>nonnum: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>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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623848808920">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Significant Accounting Policies (Policies)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_AccountingPoliciesAbstract', window );"><strong>Accounting Policies [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BasisOfAccountingPolicyPolicyTextBlock', window );">Basis of Accounting, Policy [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 and regulations of the Canadian Securities Administrators and the US Securities and Exchange Commission (&#x201c;SEC&#x201d;) for the preparation of consolidated financial statements.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">The world continues to experience a global pandemic related to the spread of the COVID-<div style="display: inline; font-style: italic; font: inherit;">19</div> 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 <div style="display: inline; font-style: italic; font: inherit;"> may </div>be impacted by the Pandemic include, but are <div style="display: inline; font-style: italic; font: inherit;">not</div> limited to; revenue recognition, impairment of goodwill and intangible assets and provisions for credit losses.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Our fiscal year commences on <div style="display: inline; font-style: italic; font: inherit;"> February 1</div><div style="display: inline; bottom:.33em; font-size: 82%; position: relative; vertical-align: baseline;">st</div> of each year and ends on <div style="display: inline; font-style: italic; font: inherit;"> January 31</div><div style="display: inline; bottom:.33em; font-size: 82%; position: relative; vertical-align: baseline;">st</div> of the following year. Our fiscal year, which ends on <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021, </div>is referred to as the &#x201c;current fiscal year&#x201d;, &#x201c;fiscal <div style="display: inline; font-style: italic; font: inherit;">2021&#x201d;,</div> <div style="display: inline; font-style: italic; font: inherit;">&#x201c;2021&#x201d;</div> or using similar words. Our previous fiscal year, which ended on <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2020, </div>is referred to as the &#x201c;previous fiscal year&#x201d;, &#x201c;fiscal <div style="display: inline; font-style: italic; font: inherit;">2020&#x201d;,</div> <div style="display: inline; font-style: italic; font: inherit;">&#x201c;2020&#x201d;</div> or using similar words. Other fiscal years are referenced by the applicable year during which the fiscal year ends. For example, <div style="display: inline; font-style: italic; font: inherit;">&#x201c;2022&#x201d;</div> refers to the annual period ending <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2022 </div>and the &#x201c;fourth quarter of <div style="display: inline; font-style: italic; font: inherit;">2022&#x201d;</div> refers to the quarter ending <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2022.</div></div></div></div></div></div></div></div></div></div></div></div><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_ConsolidationPolicyTextBlock', window );">Consolidation, Policy [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">Basis of consolidation</div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">The consolidated financial statements include the financial statements of Descartes and our wholly-owned subsidiaries. We do <div style="display: inline; font-style: italic; font: inherit;">not</div> have any variable interests in variable interest entities. All intercompany accounts and transactions have been eliminated during consolidation.</div></div></div></div></div></div></div></div></div></div></div><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_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock', window );">Foreign Currency Transactions and Translations Policy [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">Foreign currency translation</div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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' 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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 year ended <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2021, </div>foreign currency re-measurement loss of <div style="display: inline; font-style: italic; font: inherit;">$0.8</div> million was included in net income (<div style="display: inline; font-style: italic; font: inherit;"> January 31, 2020 &#x2013; </div>loss of <div style="display: inline; font-style: italic; font: inherit;">$0.6</div> million; <div style="display: inline; font-style: italic; font: inherit;"> January 31, 2019 &#x2013; </div>loss of <div style="display: inline; font-style: italic; font: inherit;">$0.4</div> million).</div></div></div></div></div></div></div></div></div></div></div><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_UseOfEstimates', window );">Use of Estimates, Policy [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">Use of estimates</div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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's best knowledge of current events, actual results <div style="display: inline; font-style: italic; font: inherit;"> may </div>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 <div style="display: inline; font-style: italic; font: inherit;">not</div> readily apparent from other sources.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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'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.</div></div></div></div></div></div></div></div></div></div></div><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_CashAndCashEquivalentsPolicyTextBlock', window );">Cash and Cash Equivalents, Policy [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">Cash</div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Cash included highly liquid short-term deposits with original maturities of <div style="display: inline; font-style: italic; font: inherit;">three</div> months or less.</div></div></div></div></div></div></div></div></div></div></div><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_FairValueOfFinancialInstrumentsPolicy', window );">Fair Value of Financial Instruments, Policy [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">Financial instruments</div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; text-decoration: underline;">Fair value of financial instruments</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">The carrying amounts of the Company's cash, accounts receivable (net), accounts payable, accrued liabilities and income taxes payable approximate their fair value due to their short maturities.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <!-- Field: Page; Sequence: 7 --> <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; text-decoration: underline;">Derivative instruments</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">We use derivative instruments to manage equity risk relating to our share-based compensation. We account for these instruments in accordance with ASC Topic <div style="display: inline; font-style: italic; font: inherit;">815</div> &#x201c;Derivatives and Hedging&#x201d; (Topic <div style="display: inline; font-style: italic; font: inherit;">815</div>), 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 <div style="display: inline; font-style: italic; font: inherit;">not</div> designate our derivative instruments as hedges and as such the changes in our derivative financial instruments' 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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; text-decoration: underline;">Foreign exchange risk</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;"> may </div>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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; text-decoration: underline;">Interest rate risk</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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's Acceptance (BA); or iii) LIBOR. We are exposed to interest rate fluctuations to the extent that we borrow on our credit facility.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; text-decoration: underline;">Credit risk</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">We do <div style="display: inline; font-style: italic; font: inherit;">not</div> use any type of speculative financial instruments, including but <div style="display: inline; font-style: italic; font: inherit;">not</div> limited to foreign exchange contracts, futures, swaps and option agreements, to manage our foreign exchange or interest rate risks. In addition, we do <div style="display: inline; font-style: italic; font: inherit;">not</div> hold or issue financial instruments for trading purposes.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; text-decoration: underline;">Equity risk</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;">not</div> hold derivatives for speculative purposes.</div></div></div></div></div></div></div></div></div></div></div><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_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy', window );">Receivables, Trade and Other Accounts Receivable, Allowance for Doubtful Accounts, Policy [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">Provision for Credit Losses</div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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.</div></div></div></div></div></div></div></div></div></div></div><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_InventoryPolicyTextBlock', window );">Inventory, Policy [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">Inventory</div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;">no</div> longer able to sell inventories above cost or at all, we write down inventory to market or excess inventory is written off.</div></div></div></div></div></div></div></div></div></div></div><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_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock', window );">Impairment or Disposal of Long-Lived Assets, Including Intangible Assets, Policy [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">Impairment of long-lived assets</div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;"> may </div>be impairment. Circumstances which could trigger a review include, but are <div style="display: inline; font-style: italic; font: inherit;">not</div> 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 <div style="display: inline; font-style: italic; font: inherit;">not</div> 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. <div style="display: inline; font-style: italic; font: inherit;">No</div> impairment of long-lived assets has been identified or recorded in our consolidated statements of operations for any of the fiscal years presented.</div></div></div></div></div></div></div></div></div></div></div><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_GoodwillAndIntangibleAssetsPolicyTextBlock', window );">Goodwill and Intangible Assets, Policy [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0">Goodwill and intangible assets</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;">not</div> subject to amortization.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">We test for impairment of goodwill at least annually on <div style="display: inline; font-style: italic; font: inherit;"> October 31</div><div style="display: inline; bottom:.33em; font-size: 82%; position: relative; vertical-align: baseline;">st</div> of each year and at any other time if any event occurs or circumstances change that would more likely than <div style="display: inline; font-style: italic; font: inherit;">not</div> reduce our fair value below our reporting unit'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 <div style="display: inline; font-style: italic; font: inherit;">third</div> quarter of <div style="display: inline; font-style: italic; font: inherit;">2021</div> and concluded that it was more likely than <div style="display: inline; font-style: italic; font: inherit;">not</div> that the fair value of the goodwill was greater than the carrying value. As a result, <div style="display: inline; font-style: italic; font: inherit;">no</div> impairment of goodwill was recorded in fiscal <div style="display: inline; font-style: italic; font: inherit;">2021</div> (<div style="display: inline; font-style: italic; font: inherit;"><div style="display: inline; font-style: italic; font: inherit;">no</div></div> impairments were recorded for fiscal <div style="display: inline; font-style: italic; font: inherit;">2020</div> or fiscal <div style="display: inline; font-style: italic; font: inherit;">2019</div>).</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;">not</div> 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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Amortization of our intangible assets is generally recorded at the following rates:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0" align="center"> <tr style="vertical-align: bottom; background-color: White"> <td style="width: 50%; text-align: left">Customer agreements and relationships</td> <td style="width: 1%">&nbsp;</td> <td style="width: 49%; text-align: left">Straight-line over <div style="display: inline; font-style: italic; font: inherit;">three</div> to <div style="display: inline; font-style: italic; font: inherit;">twenty</div> years</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Existing technologies</td> <td>&nbsp;</td> <td style="text-align: left">Straight-line over <div style="display: inline; font-style: italic; font: inherit;">two</div> to <div style="display: inline; font-style: italic; font: inherit;">twelve</div> years</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Trade names</td> <td>&nbsp;</td> <td style="text-align: left">Straight-line over <div style="display: inline; font-style: italic; font: inherit;">one</div> to <div style="display: inline; font-style: italic; font: inherit;">fifteen</div> years</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Non-compete covenants</td> <td>&nbsp;</td> <td style="text-align: left">Straight-line over <div style="display: inline; font-style: italic; font: inherit;">two</div> to <div style="display: inline; font-style: italic; font: inherit;">twelve</div> years</td> </tr> </table></div></div></div></div></div></div></div></div></div></div><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_PropertyPlantAndEquipmentPolicyTextBlock', window );">Property, Plant and Equipment, Policy [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0">Property and equipment</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Property and equipment is recorded at cost.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Effective <div style="display: inline; font-style: italic; font: inherit;"> February 1, 2020, </div>we changed our accounting method for property &amp; equipment from the declining balance method of depreciation to the straight-line method of depreciation to better reflect the consumption of the assets' 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 <div style="display: inline; font-style: italic; font: inherit;">not</div> have a material impact on our results of operations.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Depreciation of our property and equipment is generally recorded at the following rates:</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-width: 700px;" cellspacing="0" cellpadding="0" align="center"> <tr style="vertical-align: bottom; background-color: White"> <td style="width: 50%; text-align: left">Computer equipment and software</td> <td style="width: 1%">&nbsp;</td> <td style="width: 49%; text-align: left">Straight-line over <div style="display: inline; font-style: italic; font: inherit;">1</div> to <div style="display: inline; font-style: italic; font: inherit;">13</div> years</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Furniture and fixtures</td> <td>&nbsp;</td> <td style="text-align: left">Straight-line over <div style="display: inline; font-style: italic; font: inherit;">3</div> to <div style="display: inline; font-style: italic; font: inherit;">14</div> years</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Leasehold improvements</td> <td>&nbsp;</td> <td style="text-align: left">Straight-line over lesser of useful life or term of lease</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Equipment installed with customers</td> <td>&nbsp;</td> <td style="text-align: left">Straight-line over <div style="display: inline; font-style: italic; font: inherit;">3</div> years</td> </tr> </table> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div> <!-- Field: Page; Sequence: 9 --> <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">Fully depreciated property and equipment are removed from the balance sheet when they are <div style="display: inline; font-style: italic; font: inherit;">no</div> longer in use.</div></div></div></div></div></div></div></div></div></div></div><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_LesseeLeasesPolicyTextBlock', window );">Lessee, Leases [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">Leases</div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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's incremental borrowing rate. As most of our leases do <div style="display: inline; font-style: italic; font: inherit;">not</div> 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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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'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 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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">We have elected to apply the practical expedient <div style="display: inline; font-style: italic; font: inherit;">not</div> to recognize ROU assets and lease liabilities for short-term leases that have a lease term of <div style="display: inline; font-style: italic; font: inherit;">12</div> months or less. The lease payments associated with these leases is recognized as an expense on a straight-line basis over the lease term.</div></div></div></div></div></div></div></div></div></div></div><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_RevenueFromContractWithCustomerPolicyTextBlock', window );">Revenue from Contract with Customer [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">Revenue recognition</div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <!-- Field: Page; Sequence: 10 --> <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; text-decoration: underline;">License</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; text-decoration: underline;">Services</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 monthly basis based on the customer usage for that period.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; text-decoration: underline;">Professional Services &amp; Other</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;"> may </div>require judgment. Judgment is also needed in assessing the ability to collect the corresponding receivables.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 have an observable standalone selling price. If the Company does <div style="display: inline; font-style: italic; font: inherit;">not</div> 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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">Costs to obtain a contract with a customer</div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;">four</div> to <div style="display: inline; font-style: italic; font: inherit;">six</div> 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 <div style="display: inline; font-style: italic; font: inherit;">one</div> year or less.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <!-- Field: Page; Sequence: 11 --> <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">Contract assets and liabilities</div></div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; color: black">The payment terms and conditions in our customer contracts <div style="display: inline; font-style: italic; font: inherit;"> may </div>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 when or as 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. </div>Contract liabilities primarily relate to the advance consideration received from customers and is presented as deferred revenue. <div style="display: inline; color: black">Deferred revenue results from customer payments in advance of our satisfaction of the associated performance obligation(s) 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.</div></div></div></div></div></div></div></div></div></div></div></div><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_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock', window );">Research, Development, and Computer Software, Policy [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Research and development costs</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">To date, we have <div style="display: inline; font-style: italic; font: inherit;">not</div> 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 <div style="display: inline; font-style: italic; font: inherit;">not</div> been significant.</div></div></div></div></div></div></div></div></div></div></div><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_ShareBasedCompensationOptionAndIncentivePlansPolicy', window );">Share-based Payment Arrangement [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Stock-based compensation plans</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; text-decoration: underline;">Stock Options</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Employee stock options generally vest over a <div style="display: inline; font-style: italic; font: inherit;">five</div>-year period starting from the grant date and expire <div style="display: inline; font-style: italic; font: inherit;">seven</div> years from the grant date. Non-employee directors' and officers' stock options generally have quarterly vesting over a <div style="display: inline; font-style: italic; font: inherit;">three</div> to <div style="display: inline; font-style: italic; font: inherit;">five</div>-year period. We issue new shares from treasury upon the exercise of a stock option. Forfeitures are accounted for as they occur.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; text-decoration: underline;">Performance &amp; Restricted Share Units</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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;).</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">PSUs vest at the end of a <div style="display: inline; font-style: italic; font: inherit;">three</div>-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 <div style="display: inline; font-style: italic; font: inherit;">five</div> trading 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 <div style="display: inline; font-style: italic; font: inherit;">ten</div> years from the grant date. New shares are issued from treasury upon the redemption of a PSU.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <!-- Field: Page; Sequence: 12 --> <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">RSUs vest annually over a <div style="display: inline; font-style: italic; font: inherit;">three</div>-year period starting from the grant date and expire <div style="display: inline; font-style: italic; font: inherit;">ten</div> years from the grant date. We issue new shares from treasury upon the redemption of an RSU.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; text-decoration: underline;">Deferred Share Unit Plan</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Our board of directors adopted a deferred share unit plan effective as of <div style="display: inline; font-style: italic; font: inherit;"> June 28, 2004, </div>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 <div style="display: inline; font-style: italic; font: inherit;">five</div> trading days preceding the grant date. The plan allows each director to choose to receive, in the form of DSUs, all, <div style="display: inline; font-style: italic; font: inherit;">none</div> or a percentage of the eligible director'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 <div style="display: inline; font-style: italic; font: inherit;">50%</div> 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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"><div style="display: inline; text-decoration: underline;">Cash-Settled Restricted Share Unit Plan</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">Our board of directors adopted a cash-settled restricted share unit plan effective as of <div style="display: inline; font-style: italic; font: inherit;"> May 23, 2007, </div>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 <div style="display: inline; font-style: italic; font: inherit;">five</div> trading days preceding the date of the grant. The CRSUs generally vest based on continued employment and have annual vesting over <div style="display: inline; font-style: italic; font: inherit;">three</div> to <div style="display: inline; font-style: italic; font: inherit;">five</div>-year periods. Vested units are settled in cash based on our common share price when conversion takes place, which is within <div style="display: inline; font-style: italic; font: inherit;">30</div> days following a vesting date and in any event prior to <div style="display: inline; font-style: italic; font: inherit;"> December 31</div><div style="display: inline; bottom:.33em; font-size: 82%; position: relative; vertical-align: baseline;">st</div> of the calendar 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.</div></div></div></div></div></div></div></div></div></div></div><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_BusinessCombinationsPolicy', window );">Business Combinations Policy [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0">Business combinations</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">We apply the provisions of ASC Topic <div style="display: inline; font-style: italic; font: inherit;">805,</div> &#x201c;Business Combinations&#x201d; (Topic <div style="display: inline; font-style: italic; font: inherit;">805</div>), 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 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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;"> may </div>be up to <div style="display: inline; font-style: italic; font: inherit;">one</div> year from the acquisition date, we <div style="display: inline; font-style: italic; font: inherit;"> may </div>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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <!-- Field: Page; Sequence: 13 --> <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;">420,</div> &#x201c;Exit or Disposal Cost Obligations&#x201d; (Topic <div style="display: inline; font-style: italic; font: inherit;">420</div>) and are accounted for separately from the business combination.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">For a given acquisition, we generally identify certain pre-acquisition contingencies as of the acquisition date and <div style="display: inline; font-style: italic; font: inherit;"> may </div>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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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, subsequently, in our results of operations.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;">not</div> exist at the acquisition date, are recorded in our provision for income taxes in our consolidated statement of operations.</div></div></div></div></div></div></div></div></div></div></div><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_IncomeTaxPolicyTextBlock', window );">Income Tax, Policy [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0">Income taxes</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 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 <div style="display: inline; font-style: italic; font: inherit;">not</div> that a deferred tax asset will <div style="display: inline; font-style: italic; font: inherit;">not</div> 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.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">We evaluate our uncertain tax positions by using a <div style="display: inline; font-style: italic; font: inherit;">two</div>-step approach to recognize and measure uncertain tax positions and provisions for income taxes.&nbsp;The <div style="display: inline; font-style: italic; font: inherit;">first</div> step is to evaluate the tax position for recognition by determining if the weight of available evidence indicates it is more likely than <div style="display: inline; font-style: italic; font: inherit;">not,</div> 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 <div style="display: inline; font-style: italic; font: inherit;">second</div> 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 <div style="display: inline; font-style: italic; font: inherit;">not</div> to be realized. The tax position is derecognized when it is <div style="display: inline; font-style: italic; font: inherit;">no</div> longer more likely than <div style="display: inline; font-style: italic; font: inherit;">not</div> 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.</div></div></div></div></div></div></div></div></div></div></div><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_EarningsPerSharePolicyTextBlock', window );">Earnings Per Share, Policy [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0">Earnings per share</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 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.</div></div></div></div></div></div></div></div></div></div></div><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_NewAccountingPronouncementsPolicyPolicyTextBlock', window );">New Accounting Pronouncements, Policy [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0">Recently adopted accounting pronouncements</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">In <div style="display: inline; font-style: italic; font: inherit;"> May 2014, </div>the FASB issued Accounting Standards Update <div style="display: inline; font-style: italic; font: inherit;">2014</div>-<div style="display: inline; font-style: italic; font: inherit;">09,</div> &#x201c;Revenue from Contracts with Customers&#x201d; (&#x201c;ASC <div style="display: inline; font-style: italic; font: inherit;">606&#x201d;</div>). ASC <div style="display: inline; font-style: italic; font: inherit;">606</div> supersedes the revenue recognition requirements in ASC Topic <div style="display: inline; font-style: italic; font: inherit;">605,</div> &#x201c;Revenue Recognition&#x201d; ("ASC <div style="display: inline; font-style: italic; font: inherit;">605"</div>) and nearly all other existing revenue recognition guidance under US GAAP. The core principle of ASC <div style="display: inline; font-style: italic; font: inherit;">606</div> is to recognize revenues when promised goods or services are transferred to customers in an amount that reflects the consideration that is expected to be received for those goods or services. ASC <div style="display: inline; font-style: italic; font: inherit;">606</div> is effective for annual periods, and interim periods within those annual periods, beginning after <div style="display: inline; font-style: italic; font: inherit;"> December 15, 2017, </div>which is our fiscal year that began on <div style="display: inline; font-style: italic; font: inherit;"> February 1, 2018 (</div>fiscal <div style="display: inline; font-style: italic; font: inherit;">2019</div>). The Company has adopted ASC <div style="display: inline; font-style: italic; font: inherit;">606</div> in the <div style="display: inline; font-style: italic; font: inherit;">first</div> quarter of fiscal <div style="display: inline; font-style: italic; font: inherit;">2019</div> using the cumulative effect method and therefore the comparative information has <div style="display: inline; font-style: italic; font: inherit;">not</div> been restated and continues to be reported under ASC <div style="display: inline; font-style: italic; font: inherit;">605.</div> The details of the significant changes and quantitative impact of the changes are set out below.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify; text-indent: 0.5in"><div style="display: inline; text-decoration: underline;">Term-based licenses</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0 0pt 0.5in; text-align: justify">Under ASC <div style="display: inline; font-style: italic; font: inherit;">605,</div> revenue attributable to term-based arrangements was recognized ratably over the term of the arrangement because Vendor Specific Objective Evidence did <div style="display: inline; font-style: italic; font: inherit;">not</div> exist for the undelivered maintenance and support element of the arrangement. Under ASC <div style="display: inline; font-style: italic; font: inherit;">606,</div> the Company has deemed the licenses to be distinct from other performance obligations. Revenue allocated to the distinct license based on the SSP is recognized at the time that both the right-to-use the software has commenced for the term and the software has been made available to the customer.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify; text-indent: 0.5in"><div style="display: inline; text-decoration: underline;">Costs to obtain a contract</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0 0pt 0.5in; text-align: justify">Under the Company's previous accounting policies, the Company generally expensed commission costs paid to employees or <div style="display: inline; font-style: italic; font: inherit;">third</div> parties to obtain customer contracts as incurred. Under ASC <div style="display: inline; font-style: italic; font: inherit;">606,</div> the Company allocates these incremental commission costs to the various performance obligations to which they relate using the relative selling price allocation for bundled commissions. For performance obligations <div style="display: inline; font-style: italic; font: inherit;">not</div> delivered upfront, the allocated commissions are deferred and amortized over the pattern of transfer of the related performance obligation. If the expected amortization period for all performance obligations in a contract with a customer is <div style="display: inline; font-style: italic; font: inherit;">one</div> year or less, the commission fee is expensed when incurred. Capitalized costs to obtain a contract are included in other long-term assets on the consolidated balance sheet.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">The adoption of ASC <div style="display: inline; font-style: italic; font: inherit;">606</div> resulted in an increase to contract assets of <div style="display: inline; font-style: italic; font: inherit;">$0.5</div> million, an increase to other long-term assets of <div style="display: inline; font-style: italic; font: inherit;">$4.2</div> million, an increase to the liability for deferred income taxes of <div style="display: inline; font-style: italic; font: inherit;">$1.1</div> million and a decrease to accumulated deficit of <div style="display: inline; font-style: italic; font: inherit;">$3.6</div> million, as of <div style="display: inline; font-style: italic; font: inherit;"> February 1, 2018.</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">In <div style="display: inline; font-style: italic; font: inherit;"> October 2016, </div>the FASB issued Accounting Standards Update <div style="display: inline; font-style: italic; font: inherit;">2016</div>-<div style="display: inline; font-style: italic; font: inherit;">16,</div> &#x201c;Income Taxes (Topic <div style="display: inline; font-style: italic; font: inherit;">740</div>): Intra-Entity Transfers of Assets Other Than Inventory&#x201d; (&#x201c;ASU <div style="display: inline; font-style: italic; font: inherit;">2016</div>-<div style="display: inline; font-style: italic; font: inherit;">16&#x201d;</div>). ASU <div style="display: inline; font-style: italic; font: inherit;">2016</div>-<div style="display: inline; font-style: italic; font: inherit;">16</div> requires the recognition of the income tax consequences of an intra-entity transfer of an asset other than inventory when the transfer occurs. ASU <div style="display: inline; font-style: italic; font: inherit;">2016</div>-<div style="display: inline; font-style: italic; font: inherit;">16</div> is effective for annual periods, and interim periods within those annual periods, beginning after <div style="display: inline; font-style: italic; font: inherit;"> December 15, 2017, </div>which is our fiscal year that began on <div style="display: inline; font-style: italic; font: inherit;"> February 1, 2018 (</div>fiscal <div style="display: inline; font-style: italic; font: inherit;">2019</div>). The Company adopted this guidance in the <div style="display: inline; font-style: italic; font: inherit;">first</div> quarter of fiscal <div style="display: inline; font-style: italic; font: inherit;">2019.</div> As a result of adoption, the balance of unamortized deferred tax charges was written-off and previously unrecognized deferred income tax assets in certain jurisdictions were recognized. The change was applied on a modified retrospective basis, and <div style="display: inline; font-style: italic; font: inherit;">no</div> prior periods were restated. Accordingly, we recognized a decrease of <div style="display: inline; font-style: italic; font: inherit;">$4.0</div> million in accumulated deficit as a result of the adoption of this change in accounting policy, as of <div style="display: inline; font-style: italic; font: inherit;"> February 1, 2018.</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">In <div style="display: inline; font-style: italic; font: inherit;"> February 2016, </div>the FASB issued Accounting Standards Update <div style="display: inline; font-style: italic; font: inherit;">2016</div>-<div style="display: inline; font-style: italic; font: inherit;">02,</div> &#x201c;Leases (Topic <div style="display: inline; font-style: italic; font: inherit;">842</div>)&#x201d; (&#x201c;ASU <div style="display: inline; font-style: italic; font: inherit;">2016</div>-<div style="display: inline; font-style: italic; font: inherit;">02&#x201d;</div>) and issued subsequent amendments to the initial guidance during <div style="display: inline; font-style: italic; font: inherit;">2018,</div> collectively referred to as &#x201c;ASC <div style="display: inline; font-style: italic; font: inherit;">842&#x201d;.</div> These updates supersede the lease guidance in ASC Topic <div style="display: inline; font-style: italic; font: inherit;">840,</div> &#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 <div style="display: inline; font-style: italic; font: inherit;">840.</div> Leases will continue to be classified as either operating or finance. ASC <div style="display: inline; font-style: italic; font: inherit;">842</div> is effective for annual periods, and interim periods within those annual periods, beginning after <div style="display: inline; font-style: italic; font: inherit;"> December 15, 2018, </div>which is our fiscal year that began on <div style="display: inline; font-style: italic; font: inherit;"> February 1, 2019 (</div>fiscal <div style="display: inline; font-style: italic; font: inherit;">2020</div>). The Company adopted ASC <div style="display: inline; font-style: italic; font: inherit;">842</div> in the <div style="display: inline; font-style: italic; font: inherit;">first</div> quarter of fiscal <div style="display: inline; font-style: italic; font: inherit;">2020</div> using the cumulative effect method and therefore the comparative information has <div style="display: inline; font-style: italic; font: inherit;">not</div> been restated and continues to be reported under ASC <div style="display: inline; font-style: italic; font: inherit;">840.</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <!-- Field: Page; Sequence: 15 --> <!-- Field: /Page --> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify"></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">As permitted under ASC <div style="display: inline; font-style: italic; font: inherit;">842,</div> 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 <div style="display: inline; font-style: italic; font: inherit;">not</div> to recognize right-of-use (ROU) assets and lease liabilities for short-term leases that have a lease term of <div style="display: inline; font-style: italic; font: inherit;">12</div> months or less. The adoption of ASC <div style="display: inline; font-style: italic; font: inherit;">842</div> resulted in an increase to ROU assets and lease liabilities of <div style="display: inline; font-style: italic; font: inherit;"><div style="display: inline; font-style: italic; font: inherit;">$10.4</div></div> million as of <div style="display: inline; font-style: italic; font: inherit;"> February 1, 2019. </div>The adoption of ASC <div style="display: inline; font-style: italic; font: inherit;">842</div> did <div style="display: inline; font-style: italic; font: inherit;">not</div> have a material impact on either our consolidated statement of operations or our consolidated statement of cash flows.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">In <div style="display: inline; font-style: italic; font: inherit;"> June 2016, </div>the FASB issued Accounting Standards Update <div style="display: inline; font-style: italic; font: inherit;">2016</div>-<div style="display: inline; font-style: italic; font: inherit;">13,</div> &#x201c;Financial Instruments &#x2013; Credit Losses (Topic <div style="display: inline; font-style: italic; font: inherit;">326</div>): Measurement of Credit Losses on Financial Instruments&#x201d; (&#x201c;ASU <div style="display: inline; font-style: italic; font: inherit;">2016</div>-<div style="display: inline; font-style: italic; font: inherit;">13&#x201d;</div>) and issued subsequent amendments to the initial guidance during the <div style="display: inline; font-style: italic; font: inherit;">2019</div> calendar year, collectively referred to as &#x201c;ASC <div style="display: inline; font-style: italic; font: inherit;">326&#x201d;.</div> ASC <div style="display: inline; font-style: italic; font: inherit;">326</div> requires the measurement and recognition of expected credit losses for financial assets held at amortized cost. ASC <div style="display: inline; font-style: italic; font: inherit;">326</div> 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 <div style="display: inline; font-style: italic; font: inherit;">326</div> is effective for annual periods, and interim periods within those annual periods, beginning after <div style="display: inline; font-style: italic; font: inherit;"> December 15, 2019, </div>which is our fiscal year that began on <div style="display: inline; font-style: italic; font: inherit;"> February 1, 2020 (</div>fiscal <div style="display: inline; font-style: italic; font: inherit;">2021</div>).</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">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 <div style="display: inline; font-style: italic; font: inherit;">326</div> as of <div style="display: inline; font-style: italic; font: inherit;"> February 1, 2020 </div>using the cumulative effect method and therefore the comparative information has <div style="display: inline; font-style: italic; font: inherit;">not</div> been restated. The adoption of ASC <div style="display: inline; font-style: italic; font: inherit;">326</div> did <div style="display: inline; font-style: italic; font: inherit;">not</div> have a material impact on our results of operations or disclosures.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">In <div style="display: inline; font-style: italic; font: inherit;"> January 2017, </div>the FASB issued Accounting Standards Update <div style="display: inline; font-style: italic; font: inherit;">2017</div>-<div style="display: inline; font-style: italic; font: inherit;">04,</div> &#x201c;Intangibles &#x2013; Goodwill and Other (Topic <div style="display: inline; font-style: italic; font: inherit;">350</div>): Simplifying the Test for Goodwill Impairment&#x201d; (&#x201c;ASU <div style="display: inline; font-style: italic; font: inherit;">2017</div>-<div style="display: inline; font-style: italic; font: inherit;">04&#x201d;</div>). ASU <div style="display: inline; font-style: italic; font: inherit;">2017</div>-<div style="display: inline; font-style: italic; font: inherit;">04</div> simplifies how an entity is required to test goodwill for impairment. ASU <div style="display: inline; font-style: italic; font: inherit;">2017</div>-<div style="display: inline; font-style: italic; font: inherit;">04</div> is effective for annual periods, and interim periods within those annual periods, beginning after <div style="display: inline; font-style: italic; font: inherit;"> December 15, 2019, </div>which is our fiscal year that began on <div style="display: inline; font-style: italic; font: inherit;"> February 1, 2020 (</div>fiscal <div style="display: inline; font-style: italic; font: inherit;">2021</div>). The Company adopted this guidance in the <div style="display: inline; font-style: italic; font: inherit;">first</div> quarter of fiscal <div style="display: inline; font-style: italic; font: inherit;">2021.</div> The adoption of this guidance did <div style="display: inline; font-style: italic; font: inherit;">not</div> have a material impact on our results of operations or disclosures.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">In <div style="display: inline; font-style: italic; font: inherit;"> August 2018, </div>the FASB issued Accounting Standards Update <div style="display: inline; font-style: italic; font: inherit;">2018</div>-<div style="display: inline; font-style: italic; font: inherit;">15,</div> &#x201c;Intangibles &#x2013; Goodwill and Other &#x2013; Internal-Use Software (Subtopic <div style="display: inline; font-style: italic; font: inherit;">350</div>-<div style="display: inline; font-style: italic; font: inherit;">40</div>): Customer's Accounting for Implementation Costs Incurred in a Cloud Computing Arrangement That Is a Service Contract&#x201d; (&#x201c;ASU <div style="display: inline; font-style: italic; font: inherit;">2018</div>-<div style="display: inline; font-style: italic; font: inherit;">15&#x201d;</div>). ASU <div style="display: inline; font-style: italic; font: inherit;">2018</div>-<div style="display: inline; font-style: italic; font: inherit;">15</div> 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 <div style="display: inline; font-style: italic; font: inherit;">2018</div>-<div style="display: inline; font-style: italic; font: inherit;">15</div> is effective for annual periods, and interim periods within those annual periods, beginning after <div style="display: inline; font-style: italic; font: inherit;"> December 15, 2019, </div>which is our fiscal year that began on <div style="display: inline; font-style: italic; font: inherit;"> February 1, 2020 (</div>fiscal <div style="display: inline; font-style: italic; font: inherit;">2021</div>). The Company adopted this guidance in the <div style="display: inline; font-style: italic; font: inherit;">first</div> quarter of fiscal <div style="display: inline; font-style: italic; font: inherit;">2021.</div> The adoption of this guidance did <div style="display: inline; font-style: italic; font: inherit;">not</div> have a material impact on our results of operations or disclosures.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">&nbsp;</div> <div style=" font: italic bold 10pt Times New Roman, Times, Serif; margin: 0pt 0">Recently issued accounting pronouncements</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify">In <div style="display: inline; font-style: italic; font: inherit;"> December 2019, </div>the FASB issued Accounting Standards Update <div style="display: inline; font-style: italic; font: inherit;">2019</div>-<div style="display: inline; font-style: italic; font: inherit;">12,</div> &#x201c;Income Taxes (Topic <div style="display: inline; font-style: italic; font: inherit;">740</div>): Simplifying the Accounting for Income Taxes&#x201d; (&#x201c;ASU <div style="display: inline; font-style: italic; font: inherit;">2019</div>-<div style="display: inline; font-style: italic; font: inherit;">12&#x201d;</div>). ASU <div style="display: inline; font-style: italic; font: inherit;">2019</div>-<div style="display: inline; font-style: italic; font: inherit;">12</div> simplifies how an entity accounts for income taxes. ASU <div style="display: inline; font-style: italic; font: inherit;">2019</div>-<div style="display: inline; font-style: italic; font: inherit;">12</div> is effective for annual periods, and interim periods within those annual periods, beginning after <div style="display: inline; font-style: italic; font: inherit;"> December 15, 2020, </div>which will be our fiscal year beginning <div style="display: inline; font-style: italic; font: inherit;"> February 1, 2021 (</div>fiscal <div style="display: inline; font-style: italic; font: inherit;">2022</div>). Early adoption is permitted. The Company will adopt this guidance in the <div style="display: inline; font-style: italic; font: inherit;">first</div> quarter of fiscal <div style="display: inline; font-style: italic; font: inherit;">2022.</div> The adoption of this guidance is <div style="display: inline; font-style: italic; font: inherit;">not</div> expected to have a material impact on our results of operations or disclosures.</div></div></div></div></div></div></div></div></div></div></div><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>nonnum: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><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum: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=121583591&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><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum: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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-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>nonnum: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=6371337&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 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br><br>Reference 3: 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=6371337&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>nonnum: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=121572278&amp;loc=d3e13279-108611<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum: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><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum: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 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<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> -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 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>nonnum: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>nonnum: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=120406818&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=84230637&amp;loc=d3e32847-109319<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 954<br> -SubTopic 740<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6491622&amp;loc=d3e9504-115650<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<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 19<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32840-109319<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 1<br> -URI http://asc.fasb.org/extlink&amp;oid=116657188&amp;loc=SL116659661-227067<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 9<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32639-109319<br><br>Reference 8: 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=120406818&amp;loc=d3e32280-109318<br><br>Reference 9: 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=84230637&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>nonnum: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 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<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 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6361739&amp;loc=d3e7789-107766<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=116846552&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://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>nonnum: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=121609121&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>nonnum: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>nonnum: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><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>nonnum: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 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<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(4))<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 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=121611835&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>nonnum: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 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<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 50<br> -Section 25<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=16397303&amp;loc=d3e19347-109286<br><br>Reference 3: 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 4: 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 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.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>nonnum: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=121604090&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=121604090&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=121604090&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=121604090&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=121604090&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=84158767&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=121604090&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=121604090&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=121604090&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>nonnum: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 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<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 (b),(f)<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 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>nonnum: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>nonnum: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>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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623856187512">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 3 - Acquisitions (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock', window );">Schedule of Business Acquisitions, by Acquisition [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Peoplevox</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Kontainers</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">ShipTrack</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Total</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td>Purchase price consideration:</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: -10pt; width: 48%; text-align: left; padding-left: 20pt">Cash, less cash acquired related to Peoplevox ($1,634), Kontainers (overdraft of $13) and ShipTrack ($529)</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">24,137</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5,237</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">19,029</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%; font-weight: bold">&nbsp;</td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">48,403</div></td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-left: 10pt">Consideration payable</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">100</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">100</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-left: 10pt">Contingent consideration</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,414</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,825</div></td> <td style="text-align: left">&nbsp;</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4,239</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt; padding-left: 10pt">Net working capital adjustments (receivable) / payable</td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(42</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">)</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(218</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">)</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">82</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(178</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">24,095</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6,533</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">21,936</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">52,564</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Allocated to:</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-left: 10pt">Current assets, excluding cash acquired</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">485</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">253</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,846</div></td> <td style="text-align: left">&nbsp;</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,584</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-left: 10pt">Right-of-use assets</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">151</div></td> <td style="text-align: left">&nbsp;</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">151</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-left: 10pt">Current liabilities</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(776</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(989</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(668</div></td> <td style="text-align: left">)</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(2,433</div></td> <td style="font-weight: bold; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-left: 10pt">Deferred revenue</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(748</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(102</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(204</div></td> <td style="text-align: left">)</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,054</div></td> <td style="font-weight: bold; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-left: 10pt">Lease obligations</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(151</div></td> <td style="text-align: left">)</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(151</div></td> <td style="font-weight: bold; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-left: 10pt">Deferred income tax liability</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,615</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(4,012</div></td> <td style="text-align: left">)</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(5,627</div></td> <td style="font-weight: bold; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-bottom: 1pt; padding-left: 10pt">Debt</td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(728</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">)</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(728</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Net tangible assets (liabilities) assumed</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(2,654</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(838</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(3,766</div></td> <td style="text-align: left">)</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(7,258</div></td> <td style="font-weight: bold; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Finite life intangible assets acquired:</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left">Customer agreements and relationships</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,631</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">800</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,905</div></td> <td style="text-align: left">&nbsp;</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8,336</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left">Existing technology</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">7,651</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,000</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">11,102</div></td> <td style="text-align: left">&nbsp;</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">21,753</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-left: 10pt">Trade names</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">30</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">77</div></td> <td style="text-align: left">&nbsp;</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">107</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-left: 10pt">Non-compete covenants</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">285</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">80</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">291</div></td> <td style="text-align: left">&nbsp;</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">656</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-bottom: 1pt">Goodwill</td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">15,182</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,461</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">10,327</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">28,970</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">24,095</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6,533</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">21,936</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">52,564</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> </tr> </table></div><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-weight: bold; text-align: right; border-bottom: Black 1pt solid">Visual Compliance</td> <td style="padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="text-align: right; border-bottom: Black 1pt solid"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">CORE</div></div></td> <td style="padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="text-align: right; border-bottom: Black 1pt solid"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">STEP-com</div></div></td> <td style="padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="text-align: right; border-bottom: Black 1pt solid"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Best-Transport</div></div></td> <td style="padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="text-align: right; border-bottom: Black 1pt solid"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Total</div></div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td>Purchase price consideration:</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: -10pt; padding-left: 20pt; width: 35%; text-align: left">Cash, less cash acquired related to Visual Compliance ($170), CORE ($213), STEPcom ($2,700) and BestTransport ($507)</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">239,863</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">21,833</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">18,639</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">11,718</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">292,053</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt">Common shares issued</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">9,045</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">9,045</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left">Contingent consideration</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,450</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,450</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt">Net working capital adjustments payable / (receivable)</td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,147</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">62</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">250</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,459</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">250,055</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">23,345</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">18,889</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">11,718</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">304,007</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Allocated to:</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left">Current assets, excluding cash acquired</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6,403</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">689</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,470</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">815</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">9,377</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left">Property and equipment</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">30</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,048</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">257</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">35</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,370</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left">Deferred income tax asset</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">30,924</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">30,924</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left">Right-of-use assets</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,188</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">68</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">232</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">194</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,682</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left">Current liabilities</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(840</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(352</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(874</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(284</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(2,350</div></td> <td style="text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left">Deferred revenue</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(10,267</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(278</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(813</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(9</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(11,367</div></td> <td style="text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left">Lease obligations</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,188</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(68</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(232</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(194</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,682</div></td> <td style="text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt">Deferred income tax liability</td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(282</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">)</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(3,332</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">)</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(2,316</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">)</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,352</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">)</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(7,282</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left">Net tangible assets (liabilities) assumed</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">25,968</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,225</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(2,276</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(795</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">21,672</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Finite life intangible assets acquired:</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left">Customer agreements and relationships</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">32,186</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4,600</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">10,839</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,000</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">50,625</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left">Existing technology</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">69,422</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6,800</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,800</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">80,022</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left">Trade names</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">528</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">200</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">102</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">50</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">880</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left">Non-compete covenants</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,166</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">300</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">205</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">150</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,821</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-bottom: 1pt">Goodwill</td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">118,785</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">12,670</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">10,019</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5,513</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">146,987</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">250,055</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">23,345</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">18,889</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">11,718</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">304,007</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> </tr> </table></div><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Aljex</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Velocity Mail</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;"></div></div><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">PinPoint</div></div></td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 3pt 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Total</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td>Purchase price consideration:</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="width: 48%; text-align: left; padding-left: 10pt">Cash, less cash acquired related to Aljex ($193), Velocity Mail (nil) and PinPoint ($769)</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">32,382</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">26,107</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">9,443</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">67,932</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt">Common shares issued</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,536</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,536</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-left: 10pt">Contingent consideration</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">714</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">714</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt; padding-left: 10pt">Net working capital adjustments (receivable) / payable</td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(152</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">)</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(102</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">)</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">36</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(218</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">32,230</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">26,005</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">11,729</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">69,964</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Allocated to:</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-left: 10pt">Current assets, excluding cash acquired</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">607</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,407</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">599</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,613</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-left: 10pt">Other long-term assets</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">501</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">501</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-left: 10pt">Current liabilities</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(266</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(81</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(559</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(906</div></td> <td style="text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-left: 10pt">Deferred revenue</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,024</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(70</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(574</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,668</div></td> <td style="text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt; padding-left: 10pt">Deferred income tax liability</td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(4,200</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">)</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(2,077</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">)</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(6,277</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-left: 0pt">Net tangible (liabilities) assets assumed</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(4,883</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,757</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(2,611</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(5,737</div></td> <td style="text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td>&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Finite life intangible assets acquired:</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left">Customer agreements and relationships</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5,300</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">7,800</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">7,758</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">20,858</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left">Existing technology</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">12,400</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">7,600</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">20,000</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt">Tradenames</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">280</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">100</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">207</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">587</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-left: 10pt">Non-compete covenants</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">230</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">300</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">69</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">599</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-bottom: 1pt">Goodwill</td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">18,903</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8,448</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6,306</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">33,657</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">32,230</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">26,005</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">11,729</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">69,964</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> </tr> </table></div><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_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock', window );">Schedule of Acquired Finite-Lived Intangible Assets by Major Class [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Peoplevox</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Kontainers</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">ShipTrack</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 61%; text-align: left">Customer agreements and relationships (years)</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">10</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">12</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">13</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Existing technology (years)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Trade names (years)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt"><div style="display: inline; font-style: italic; font: inherit;">N/A</div></div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Non-compete covenants (years)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5</div></td> <td style="text-align: left">&nbsp;</td> </tr> </table></div><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"></div><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Visual Compliance</div></div></td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"></div><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">CORE</div></div></td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"></div><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"></div><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">STEPcom</div></div></td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"></div><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Best Transport</div></div></td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 46%; text-align: left">Customer agreements and relationships (years)</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 12%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">14</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">13</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">9</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">12</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Existing technology (years)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">7</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt"><div style="display: inline; font-style: italic; font: inherit;">N/A</div></div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Trade names (years)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Non-compete covenants (years)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2</div></td> <td style="text-align: left">&nbsp;</td> </tr> </table></div><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Aljex</div></div></td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Velocity Mail</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;"></div></div><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">PinPoint</div></div></td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 61%; text-align: left">Customer agreements and relationships (years)</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">13</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">12</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">9</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Existing technology (years)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt"><div style="display: inline; font-style: italic; font: inherit;">N/A</div></div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Trade names (years)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Non-compete covenants (years)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5</div></td> <td style="text-align: left">&nbsp;</td> </tr> </table></div><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_BusinessAcquisitionProFormaInformationTextBlock', window );">Business Acquisition, Pro Forma Information [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td style="font-style: italic">Year Ended</td> <td style="font-weight: bold">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom"> <td style="text-align: right">&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">2020</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">2019</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 61%; font-weight: normal">Revenues</td> <td style="width: 1%; font-weight: bold">&nbsp;</td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">354,461</div></td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">341,376</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">328,824</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-weight: normal; text-align: left">Net income</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">51,302</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">33,727</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">25,370</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-weight: normal">Earnings per share</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt">Basic</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">0.61</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">0.41</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">0.33</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt">Diluted</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">0.60</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">0.41</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">0.33</div></td> <td style="text-align: left">&nbsp;</td> </tr> </table></div><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>nonnum: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>nonnum: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>nonnum: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>49
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623848191304">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 4 - 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, 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_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock', window );">Schedule of Derivative Assets at Fair Value [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Fair Value of Derivatives Designated as Hedge Instruments</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Fair Value of Derivatives Not Designated As Hedge Instruments</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Fair Value</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Derivative assets:</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="width: 49%; text-align: left; padding-bottom: 1pt">Equity contracts</td> <td style="width: 1%; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; width: 14%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; width: 14%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8,001</div></td> <td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; width: 14%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8,001</div></td> <td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; text-align: left">&nbsp;</td> </tr> </table></div><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">Fair Value of Derivatives Designated as Hedge Instruments</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">Fair Value of Derivatives Not Designated As Hedge Instruments</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">Fair Value</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Derivative assets:</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="width: 49%; text-align: left; padding-bottom: 1pt">Equity contracts</td> <td style="width: 1%; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; width: 1%; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; width: 14%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="border-bottom: Black 1pt solid; width: 1%; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; width: 1%; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; width: 1%; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; width: 14%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5,656</div></td> <td style="border-bottom: Black 1pt solid; width: 1%; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; width: 1%; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; width: 1%; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; width: 14%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5,656</div></td> <td style="border-bottom: Black 1pt solid; width: 1%; text-align: left">&nbsp;</td> </tr> </table></div><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_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>nonnum: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>50
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623848611464">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 5 - 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, 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_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock', window );">Schedule of Accounts, Notes, Loans and Financing Receivable [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="font-weight: bold">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">2020</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 74%; text-align: left">Trade accounts receivable</td> <td style="width: 1%; font-weight: bold">&nbsp;</td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">39,536</div></td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">37,121</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt">Less: Provision for credit losses</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(2,330</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">)</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(2,003</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">37,206</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">35,118</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> </tr> </table></div><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_AccountsReceivableAllowanceForCreditLossTableTextBlock', window );">Accounts Receivable, Allowance for Credit Loss [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Provision for Credit Losses</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 85%; text-indent: -0.5in; padding-left: 0.5in">Balance at January 31, 2020</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 12%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,003</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt">Current period provision for expected losses</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,681</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt">Write-offs charged against the provision</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,418</div></td> <td style="font-weight: bold; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt">Effect of movements in foreign exchange</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">64</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt">Balance at January 31, 2021</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,330</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> </tr> </table></div><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=121599337&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>nonnum: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>nonnum: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>51
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623932859480">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 6 - Other Receivables (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_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 );">Other Receivables [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="font-weight: bold">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">2020</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 74%; text-align: left">Net working capital adjustments receivable from acquisitions</td> <td style="width: 1%; font-weight: bold">&nbsp;</td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">237</div></td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt">Other receivables</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">14,593</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">7,294</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">14,830</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">7,294</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> </tr> </table></div><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>nonnum: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>52
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623851436664">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 8 - 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, 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_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentTextBlock', window );">Property, Plant and Equipment [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="font-weight: bold">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">2020</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td>Cost</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; width: 74%">Computer equipment and software</td> <td style="width: 1%; font-weight: bold">&nbsp;</td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">37,469</div></td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">34,442</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt">Furniture and fixtures</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,494</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,432</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt">Leasehold improvements</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">807</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">778</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt">Equipment installed with customers</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,654</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,289</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt">Assets under construction</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">998</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">829</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td>&nbsp;</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">42,422</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">38,770</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Accumulated depreciation</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt">Computer equipment and software</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">28,123</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">23,730</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt">Furniture and fixtures</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,081</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">816</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt">Leasehold improvements</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">401</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">290</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt">Equipment installed with customers</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">728</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">203</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">30,333</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">25,039</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-bottom: 1pt">Net</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">12,089</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">13,731</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> </tr> </table></div><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>nonnum: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>53
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623852819576">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 9 - Intangible Assets (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock', window );">Schedule of Finite-Lived Intangible Assets [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td style="text-align: right">&nbsp;</td> <td style="font-weight: bold">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom"> <td style="text-align: right">&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">2020</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td>Cost</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; width: 74%">Customer agreements and relationships</td> <td style="width: 1%; font-weight: bold">&nbsp;</td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">240,479</div></td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">226,514</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt">Existing technology</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">295,161</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">262,614</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt">Trade names</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8,844</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8,582</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt">Non-compete covenants</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">10,939</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">9,985</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td>&nbsp;</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">555,423</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">507,695</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Accumulated amortization</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt">Customer agreements and relationships</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">119,361</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">98,241</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt">Existing technology</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">183,539</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">142,757</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt">Trade names</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5,996</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5,124</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt">Non-compete covenants</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6,535</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4,617</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">315,431</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">250,739</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-bottom: 1pt">Net</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">239,992</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">256,956</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> </tr> </table></div><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>nonnum: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>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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623851400952">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 10 - Goodwill (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_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 );">Condensed Cash Flow Statement [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="font-weight: bold">&nbsp;</td> <td colspan="3" style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid">&nbsp;</td> <td colspan="3" style="border-top: Black 1pt solid; text-align: right">January 31,</td> </tr> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-weight: bold; text-align: right; border-bottom: Black 1pt solid">2021</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="text-align: right; border-bottom: Black 1pt solid">2020</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 74%">Balance at beginning of period</td> <td style="width: 1%; font-weight: bold">&nbsp;</td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">523,690</div></td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">378,178</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left">Acquisition of Visual Compliance</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">118,785</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt">Acquisition of CORE</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">12,670</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt">Acquisition of STEPcom</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">10,019</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt">Acquisition of BestTransport</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5,513</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt">Acquisition of Peoplevox</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">15,182</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt">Acquisition of Kontainers</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,461</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt">Acquisition of ShipTrack</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">10,327</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt">Adjustments on account of foreign exchange</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">12,517</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,475</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-bottom: 1pt">Balance at end of period</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">565,177</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">523,690</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> </tr> </table></div><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>nonnum: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>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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623965957496">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 11 - Accrued Liabilities (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock', window );">Schedule of Accrued Liabilities [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td style="text-align: right">&nbsp;</td> <td style="font-weight: bold">&nbsp;</td> <td colspan="3" style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid">&nbsp;</td> <td colspan="3" style="border-top: Black 1pt solid; text-align: right">January 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="text-align: right">&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="text-align: right; border-bottom: Black 1pt solid">2020</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 74%; text-align: left">Accrued compensation and benefits</td> <td style="width: 1%; font-weight: bold">&nbsp;</td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">24,643</div></td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">20,613</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Accrued professional fees</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,188</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,010</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt">Other accrued liabilities</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">13,048</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">13,253</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">38,879</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">34,876</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> </tr> </table></div><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>nonnum: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>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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623848160936">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 13 - Leases (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LeaseCostTableTextBlock', window );">Lease, Cost [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 12pt 0pt 0"><div style="display: inline; font-style: italic;"></div></div><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 12pt 0pt 0"><div style="display: inline; font-style: italic;">Year Ended</div></div></td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right">&nbsp;</div></td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">January 31, 2021</div></div></td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">January 31, 2020</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 70%; text-align: left">Operating lease cost</td> <td style="width: 1%; font-weight: bold">&nbsp;</td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 12%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4,590</div></td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 12%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4,902</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt">Short-term lease cost</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">502</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">866</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt">Total operating lease cost</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5,092</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5,768</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> </tr> </table></div><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td style="font-style: italic">Year Ended</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">January 31, 2021</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">January 31, 2020</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 70%; text-align: left">Operating cash outflows from operating leases included in measurement of lease liabilities</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 12%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4,831</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 12%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4,150</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left">New ROU assets obtained in exchange for lease obligations</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,337</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6,439</div></td> <td style="text-align: left">&nbsp;</td> </tr> </table></div><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">January 31, 2021</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">January 31, 2020</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 70%; text-align: left">Weighted average remaining lease term (years)</td> <td style="width: 1%; font-weight: bold">&nbsp;</td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 12%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3.8</div></td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 12%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4.3</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td>Weighted average discount rate (%)</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2.5</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2.8</div></td> <td style="text-align: left">&nbsp;</td> </tr> </table></div><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_LesseeOperatingLeaseLiabilityMaturityTableTextBlock', window );">Lessee, Operating Lease, Liability, Maturity [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td style="text-align: left">Years Ended January 31,</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Operating Leases</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; width: 85%; text-align: left">2022</td> <td style="width: 1%; font-weight: bold">&nbsp;</td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 12%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4,544</div></td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left">2023</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,480</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left">2024</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,689</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left">2025</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,725</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left">2026</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">954</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left"><div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt">2027 and thereafter</div></td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">420</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left"><div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt">Total lease payments</div></td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">13,812</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left"><div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt">Less: imputed interest</div></td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(749</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left"><div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt">Total lease obligations</div></td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">13,063</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left"><div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt">Current</div></td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4,168</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left"><div style="display: inline; font-family: Times New Roman, Times, Serif; font-size: 10pt">Long-term</div></td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8,895</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> </tr> </table></div><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=121609121&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>nonnum: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=121609121&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>nonnum: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>57
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623851482104">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 15 - Share Capital (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock', window );">Schedule of Common Stock Outstanding Roll Forward [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="font-weight: bold">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom"> <td style="font-style: italic">(thousands of shares)</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">2020</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">2019</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 61%; text-align: left">Balance, beginning of year</td> <td style="width: 1%; font-weight: bold">&nbsp;</td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">84,156</div></td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">76,865</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">76,773</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt">Shares issued:</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 20pt; text-align: left">Stock options and share units exercised</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">338</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">95</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">46</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 20pt">Issuance of common shares</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6,900</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 20pt; text-align: left; padding-bottom: 1pt">Acquisitions (Note 3)</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">296</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">46</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt">Balance, end of year</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">84,494</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">84,156</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">76,865</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> </table></div><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>nonnum: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>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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623852727352">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 16 - 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, 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_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock', window );">Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td style="font-style: italic">Year Ended</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style=" margin-top: 0; margin-bottom: 0">&nbsp;</div></td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style=" margin-top: 0; margin-bottom: 0">January 31,</div> <div style=" margin-top: 0; margin-bottom: 0">2021</div></td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style=" margin-top: 0; margin-bottom: 0">&nbsp;</div></td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" margin-top: 0; margin-bottom: 0">&nbsp;</div></td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" margin-top: 0; margin-bottom: 0">January 31,</div> <div style=" margin-top: 0; margin-bottom: 0">2020</div></td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" margin-top: 0; margin-bottom: 0">&nbsp;</div></td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" margin-top: 0; margin-bottom: 0">&nbsp;</div></td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" margin-top: 0; margin-bottom: 0">January 31,</div> <div style=" margin-top: 0; margin-bottom: 0">2019</div></td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" margin-top: 0; margin-bottom: 0">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td>&nbsp;</td> <td colspan="3" style="text-align: right">&nbsp;</td> <td>&nbsp;</td> <td colspan="3" style="text-align: right">&nbsp;</td> <td>&nbsp;</td> <td colspan="3" style="text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 61%; text-align: left; padding-bottom: 1pt">Net income for purposes of calculating basic and diluted earnings per share</td> <td style="width: 1%; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">52,100</div></td> <td style="border-bottom: Black 1pt solid; width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; width: 1%; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; width: 1%; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">36,997</div></td> <td style="border-bottom: Black 1pt solid; width: 1%; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; width: 1%; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; width: 1%; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">31,277</div></td> <td style="border-bottom: Black 1pt solid; width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td>Weighted average shares outstanding</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">84,360</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">81,659</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">76,832</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Dilutive effect of employee stock options</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">358</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">318</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">205</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt">Dilutive effect of restricted and performance share units</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,038</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">890</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">754</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt">Weighted average common and common equivalent shares outstanding</td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">85,756</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">82,867</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">77,791</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td>Earnings per share</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt">Basic</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">0.62</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">0.45</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">0.41</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; padding-bottom: 1pt">Diluted</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">0.61</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">0.45</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">0.40</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> </tr> </table></div><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=6371337&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>nonnum: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>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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623856165000">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 17 - 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, 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_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock', window );">Share-based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td style="font-style: italic">Year Ended</td> <td style="font-weight: bold">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">2020</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">2019</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 61%">Cost of revenues</td> <td style="width: 1%; font-weight: bold">&nbsp;</td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">319</div></td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">220</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">160</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Sales and marketing</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">896</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">706</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">436</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Research and development</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">404</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">281</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">184</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt">General and administrative</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4,694</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,702</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,930</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt">Effect on net income</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6,313</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4,909</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,710</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> </tr> </table></div><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_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock', window );">Schedule of Share-based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td style="font-style: italic">Year Ended</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">January 31, 2021</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">January 31, 2020</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">January 31, 2019</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Expected dividend yield (%)</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="width: 61%; text-align: left">Expected volatility (%)</td> <td style="width: 1%; font-weight: bold">&nbsp;</td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">26.4</div></td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">23.5</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">23.6</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Risk-free rate (%)</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">0.7</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1.4</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2.0</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Expected option life (years)</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5</div></td> <td style="text-align: left">&nbsp;</td> </tr> </table></div><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_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock', window );">Share-based Payment Arrangement, Option, Activity [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td style="text-align: center">&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Number of Stock Options Outstanding</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Weighted-</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Average Exercise</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Price</div></div></td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td> <td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Weighted- Average Remaining Contractual Life (years)</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right">&nbsp;</div></td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Aggregate Intrinsic</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Value</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">(in millions)</div></div></td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 40%">Balance at January 31, 2019</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 12%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">879,338</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">$</td> <td style="width: 12%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">21.41</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 12%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4.7</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">$</td> <td style="width: 12%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8.7</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt">Granted</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">367,173</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">$</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">38.06</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt">Exercised</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(94,970</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">$</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">15.62</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; padding-bottom: 1pt">Forfeited</td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(23,719</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">)</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">31.93</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td>Balance at January 31, 2020</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,127,822</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">$</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">26.82</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4.6</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">$</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">20.2</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt">Granted</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">381,859</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">$</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">41.51</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt">Exercised</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(338,342</div></td> <td style="font-weight: bold; text-align: left">)</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">$</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">18.43</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; padding-bottom: 1pt">Forfeited</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(23,619</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">)</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">$</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">33.88</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-bottom: 1pt">Balance at January 31, 2021</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,147,720</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">33.77</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4.9</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">28.1</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td>&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt">Vested or expected to vest at January 31, 2021</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,147,720</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">33.77</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4.9</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">28.1</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td>&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-bottom: 1pt">Exercisable at January 31, 2021</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">646,065</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">29.52</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4.3</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">18.6</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> </tr> </table></div><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_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock', window );">Share-based Payment Arrangement, Option, Exercise Price Range [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td colspan="3" style="text-align: center">&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="11" style="border-top: Black 1pt solid; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Options Outstanding</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="border-top: Black 1pt solid; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Options Exercisable</td> </tr> <tr style="vertical-align: bottom"> <td colspan="3" style="font-style: italic; text-align: left">Range of Exercise Prices</td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">Weighted <br />Average Exercise Price</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">Number of Stock Options</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">Weighted Average Remaining Contractual Life (years)</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">Weighted Average Exercise Price</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">Number of Stock Options</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center; width: 7%; padding-left: 0pt">$11.32</td> <td style="text-align: center; padding-left: 0pt; width: 7%"><div style="display: inline; font-style: italic; font: inherit;">&#x2013;</div></td> <td style="text-align: center; padding-left: 0pt; width: 7%"><div style="display: inline; font-style: italic; font: inherit;">$22.34</div></td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">$</td> <td style="width: 13%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">21.06</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 13%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">220,559</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 13%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2.9</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">$</td> <td style="width: 13%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">21.01</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 12%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">203,459</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center; padding-left: 0pt">$25.65</td> <td style="text-align: center; padding-left: 0pt"><div style="display: inline; font-style: italic; font: inherit;">&#x2013;</div></td> <td style="text-align: center; padding-left: 0pt"><div style="display: inline; font-style: italic; font: inherit;">$27.23</div></td> <td>&nbsp;</td> <td style="text-align: left">$</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">27.22</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">217,381</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4.2</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">$</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">27.23</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">186,707</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center; padding-left: 0pt">$37.66</td> <td style="text-align: center; padding-left: 0pt"><div style="display: inline; font-style: italic; font: inherit;">&#x2013;</div></td> <td style="text-align: center; padding-left: 0pt"><div style="display: inline; font-style: italic; font: inherit;">$39.30</div></td> <td>&nbsp;</td> <td style="text-align: left">$</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">38.09</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">636,869</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5.7</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">$</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">37.96</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">255,899</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center; padding-left: 0pt">$49.04</td> <td style="text-align: center; padding-left: 0pt"><div style="display: inline; font-style: italic; font: inherit;">&#x2013;</div></td> <td style="text-align: center; padding-left: 0pt"><div style="display: inline; font-style: italic; font: inherit;">$55.04</div></td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">54.11</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">72,911</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6.7</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td colspan="3" style="text-align: center; padding-bottom: 1pt; padding-left: 12pt"><div style="display: inline; font-style: italic; font: inherit;"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></div></td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">33.77</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,147,720</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4.9</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">29.52</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">646,065</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> </tr> </table></div><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_ScheduleOfNonvestedShareActivityTableTextBlock', window );">Schedule of Nonvested Share Activity [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td style="text-align: center">&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Number of Stock Options Outstanding</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Weighted-</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Average Grant-Date Fair Value per Share</div></div></td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 70%">Balance at January 31, 2019</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 12%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">325,218</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">$</td> <td style="width: 12%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6.18</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt">Granted</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">367,173</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">$</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8.99</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt">Vested</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(259,269</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">$</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6.96</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; padding-bottom: 1pt">Forfeited</td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(23,469</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">)</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">7.69</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td>Balance at January 31, 2020</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">409,653</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">$</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8.03</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt">Granted</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">381,859</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">$</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">10.19</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt">Vested</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(266,238</div></td> <td style="font-weight: bold; text-align: left">)</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">$</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8.19</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; padding-bottom: 1pt">Forfeited</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(23,619</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">)</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">$</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4.87</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-bottom: 1pt">Balance at January 31, 2021</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">501,655</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">9.52</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> </tr> </table></div><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_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock', window );">Share-based Payment Arrangement, Performance Shares, Outstanding Activity [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td style="text-align: center">&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Number of PSUs Outstanding</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right">&nbsp;</div></td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Weighted-</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Average Granted Date Fair Value</div></div></td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td> <td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Weighted- Average Remaining Contractual Life (years)</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Aggregate Intrinsic</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Value</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">(in millions)</div></div></td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 48%">Balance at January 31, 2019</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">530,383</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">$</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">18.02</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5.5</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">$</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">16.6</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt">Granted</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">53,729</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">$</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">53.65</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt">Performance units issued</td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">45,762</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">23.24</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td>Balance at January 31, 2020</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">629,874</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">$</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">21.19</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5.0</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">$</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">28.2</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt">Granted</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">85,334</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">$</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">54.24</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt">Performance units issued</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">40,665</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">$</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">29.08</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-bottom: 1pt">Balance at January 31, 2021</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">755,873</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">25.17</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4.7</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">44.0</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td>&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt">Vested or expected to vest at January 31, 2021</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">755,873</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">25.17</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4.7</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">44.0</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td>&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-bottom: 1pt">Exercisable at January 31, 2021</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">562,459</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">17.21</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3.5</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">32.8</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> </tr> </table></div><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_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock', window );">Share-based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td style="text-align: center">&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Number of RSUs Outstanding</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right">&nbsp;</div></td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Weighted-</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Average Granted Date Fair Value</div></div></td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td> <td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Weighted- Average Remaining Contractual Life (years)</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right">&nbsp;</div></td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Aggregate Intrinsic</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">Value</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">(in millions)</div></div></td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 48%">Balance at January 31, 2019</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">337,066</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">$</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">14.42</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5.6</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">$</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">10.6</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; padding-bottom: 1pt">Granted</td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">37,611</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">38.04</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td>Balance at January 31, 2020</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">374,677</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">$</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">16.57</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5.0</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">$</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">16.8</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; padding-bottom: 1pt">Granted</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">57,518</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">$</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">43.25</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-bottom: 1pt">Balance at January 31, 2021</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">432,195</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">19.98</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4.7</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">25.2</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td>&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt">Vested or expected to vest at January 31, 2021</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">432,195</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">19.98</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4.7</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">25.2</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td>&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-bottom: 1pt">Exercisable at January 31, 2021</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">375,845</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">16.50</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4.1</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">$</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">21.9</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
<tr class="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 [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td style="text-align: center">&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Number of CRSUs Outstanding</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Weighted- Average Remaining Contractual Life (years)</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 74%">Balance at January 31, 2019</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">45,063</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1.6</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt">Granted</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">30,086</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt">Vested and settled in cash</td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(32,422</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">)</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td>Balance at January 31, 2020</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">42,727</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1.6</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt">Granted</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">26,629</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left">Vested and settled in cash</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(30,340</div></td> <td style="font-weight: bold; text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; padding-bottom: 1pt">Forfeited</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(248</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">)</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-bottom: 1pt">Balance at January 31, 2021</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">38,628</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1.5</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td>&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-bottom: 1pt">Non-vested at January 31, 2021</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">38,628</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1.5</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> </tr> </table></div><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>nonnum: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=115993241&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>nonnum: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>nonnum: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>nonnum: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>nonnum: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>nonnum: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>nonnum: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>nonnum: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>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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623964662264">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 18 - Income Taxes (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock', window );">Schedule of Income before Income Tax, Domestic and Foreign [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td style="font-style: italic">Year Ended</td> <td style="font-weight: bold">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">2020</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">2019</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td>&nbsp;</td> <td colspan="3" style="text-align: right">&nbsp;</td> <td>&nbsp;</td> <td colspan="3" style="text-align: right">&nbsp;</td> <td>&nbsp;</td> <td colspan="3" style="text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 61%">Canada</td> <td style="width: 1%; font-weight: bold">&nbsp;</td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">31,307</div></td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">19,557</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">16,715</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left">United States</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">26,072</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">19,962</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">11,077</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt">Other countries</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">12,990</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8,516</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">11,718</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">70,369</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">48,035</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">39,510</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> </tr> </table></div><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_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock', window );">Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td style="font-style: italic">Year Ended</td> <td style="font-weight: bold">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">2020</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">2019</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Current income tax expense</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; width: 61%">Canada</td> <td style="width: 1%; font-weight: bold">&nbsp;</td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,875</div></td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,020</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,037</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left">United States</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(3,050</div></td> <td style="font-weight: bold; text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,496</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,298</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt">Other countries</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4,921</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">779</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,707</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,746</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5,295</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6,042</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Deferred income tax expense (recovery)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt">Canada</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">7,047</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5,008</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,531</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left">United States</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">9,537</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,390</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">67</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt">Other countries</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(2,061</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">)</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(655</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">)</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(407</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">14,523</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5,743</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,191</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">18,269</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">11,038</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8,233</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> </table></div><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_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock', window );">Schedule of Deferred Tax Assets and Liabilities [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="font-weight: bold">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">2020</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td>Assets</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; width: 74%; text-align: left">Accrued liabilities not currently deductible</td> <td style="width: 1%; font-weight: bold">&nbsp;</td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4,471</div></td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">14,838</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left">Accumulated net operating losses</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">12,866</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">10,579</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left">Corporate minimum taxes</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,596</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left">Difference between tax and accounting basis of property and equipment</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">23,754</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">33,929</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt">Research and development and other tax credits and expenses</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,649</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">756</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Total deferred income tax assets</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">44,336</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">60,102</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td>Liabilities</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left">Difference between tax and accounting basis of intangible assets</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(45,030</div></td> <td style="font-weight: bold; text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(41,381</div></td> <td style="text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left">Difference between tax and accounting basis of property and equipment</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt">Other temporary differences</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(2,109</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">)</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,716</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt">Total deferred income tax liabilities</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(47,139</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">)</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(43,097</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Net deferred income taxes</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(2,803</div></td> <td style="font-weight: bold; text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">17,005</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt">Valuation allowance</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(11,365</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">)</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(10,470</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt">Net deferred income taxes, net of valuation allowance</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(14,168</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">)</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6,535</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> </tr> </table></div><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_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock', window );">Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td style="font-style: italic">Year Ended</td> <td style="font-weight: bold">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">2020</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">2019</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 61%; text-align: left">Income before income taxes</td> <td style="width: 1%; font-weight: bold">&nbsp;</td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">70,369</div></td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">48,033</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">39,510</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td>&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Combined basic Canadian statutory rates</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">26.5</div></td> <td style="font-weight: bold; text-align: left">%</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">26.5</div></td> <td style="text-align: left">%</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">26.5</div></td> <td style="text-align: left">%</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td>&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Income tax expense based on the above rates</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">18,648</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">12,729</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">10,470</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Increase (decrease) in income taxes resulting from:</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left">Permanent differences including amortization of intangible assets</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">875</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(673</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(133</div></td> <td style="text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left">Effect of differences between Canadian and foreign tax rates</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(600</div></td> <td style="font-weight: bold; text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(274</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(172</div></td> <td style="text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left">Effect of rate changes on current year timing differences</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,063</div></td> <td style="font-weight: bold; text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(609</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(245</div></td> <td style="text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left">Adjustments relating to previous periods</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,034</div></td> <td style="font-weight: bold; text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">94</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(973</div></td> <td style="text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left">Increase (decrease) in accruals for uncertain tax positions</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,289</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,042</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(515</div></td> <td style="text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left">Valuation allowance</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">254</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">692</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(344</div></td> <td style="text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left">Stock based compensation</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">100</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">352</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">231</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt">Other, including foreign exchange</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(200</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">)</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(231</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">)</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(86</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt">Income tax expense</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">18,269</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">11,038</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8,233</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> </tr> </table></div><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_SummaryOfOperatingLossCarryforwardsTextBlock', window );">Summary of Operating Loss Carryforwards [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td style="text-align: left; font-style: italic">Expiry year</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Canada</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">United States</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">EMEA</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Asia Pacific</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Total</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 16%; text-align: left; padding-left: 0pt">2022</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 14%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 14%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 14%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 14%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">285</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%; font-weight: bold">&nbsp;</td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 13%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">285</div></td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-left: 0pt">2023</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">341</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">50</div></td> <td style="text-align: left">&nbsp;</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">394</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-left: 0pt">2024</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">16</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">138</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">67</div></td> <td style="text-align: left">&nbsp;</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">221</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-left: 0pt">2025</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">51</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">51</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-left: 0pt">2026</td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-left: 0pt">Thereafter</td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6,969</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,807</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">47,832</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,434</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">60,042</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt; padding-left: 9pt">&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6,969</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,877</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">48,311</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,836</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">60,993</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> </tr> </table></div><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_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock', window );">Schedule of Unrecognized Tax Benefits Roll Forward [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="font-weight: bold">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">2020</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 74%; text-align: left">Liability, beginning of year</td> <td style="width: 1%; font-weight: bold">&nbsp;</td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6,650</div></td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">7,824</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left">Gross increases &#x2013; current period</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,502</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">139</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left; padding-bottom: 1pt">Lapsing due to statutes of limitations</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(759</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">)</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,313</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt">Liability, end of year</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">8,393</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">6,650</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> </tr> </table></div><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=84230637&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>nonnum: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=84230637&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>nonnum: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=84230637&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>nonnum: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://fasb.org/us-gaap/role/ref/legacyRef<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)(i))<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>nonnum: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=121610041&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=84230637&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>nonnum: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=84230637&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>nonnum: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>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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623851482104">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 19 - 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, 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_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock', window );">Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Deferred Revenue</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 87%; text-indent: -0.5in; padding-left: 0.5in">Balance at January 31, 2019</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">35,091</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left">Recognition of previously deferred revenue</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(30,580</div></td> <td style="text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left">Deferral of revenue</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">37,408</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left">Increases from business combinations, net</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">551</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left">Effect of movements in foreign exchange</td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(407</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: -0.5in; padding-left: 0.5in">Balance at January 31, 2020</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">42,063</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left">Recognition of previously deferred revenue</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(37,843</div></td> <td style="font-weight: bold; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left">Deferral of revenue</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">46,386</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left">Increases from business combinations, net</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">39</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left">Effect of movements in foreign exchange</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">646</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-bottom: 1pt; text-indent: -15pt; padding-left: 15pt">Balance at January 31, 2021</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">51,291</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left">Current</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">49,878</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left">Long-term</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,413</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> </tr> </table></div><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Contract Assets</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 87%; text-indent: -0.5in; padding-left: 0.5in">Balance at January 31, 2019</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">812</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left">Transfers to trade receivables from contract assets</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(490</div></td> <td style="text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left">Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">791</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left">Effect of movements in foreign exchange</td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(6</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: -0.5in; padding-left: 0.5in">Balance at January 31, 2020</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,107</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left">Transfers to trade receivables from contract assets</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(563</div></td> <td style="font-weight: bold; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt; text-align: left">Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">783</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; text-align: left">Effect of movements in foreign exchange</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">26</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-bottom: 1pt; text-indent: -15pt; padding-left: 15pt">Balance at January 31, 2021</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,353</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> </tr> </table></div><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=121604090&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>nonnum: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>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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623848769000">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 20 - Other Charges (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock', window );">Schedule of Other Operating Cost and Expense, by Component [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td style="font-style: italic">Year Ended</td> <td style="font-weight: bold">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">2020</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">2019</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 61%; text-align: left">Acquisition-related costs</td> <td style="width: 1%; font-weight: bold">&nbsp;</td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,981</div></td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,457</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,187</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Contingent consideration adjustments</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,946</div></td> <td style="font-weight: bold; text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">340</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">591</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt">Restructuring plans</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,300</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">20</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,335</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,797</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,798</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> </tr> </table></div><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_ScheduleOfRestructuringReserveByTypeOfCostTextBlock', window );">Schedule of Restructuring Reserve by Type of Cost [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right; text-indent: 1.5pt">&nbsp;</div></td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right; text-indent: 1.5pt"><div style="display: inline; font-weight: bold;">Workforce</div></div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right; text-indent: 1.5pt"><div style="display: inline; font-weight: bold;">Reduction</div></div></td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; text-align: right"><div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: right; text-indent: 1.5pt"><div style="display: inline; font-weight: bold;">&nbsp;</div></div></td> <td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Office Closures</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; padding-bottom: 1pt; border-bottom: Black 1pt solid">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">Total</td> <td style="border-top: Black 1pt solid; border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td>Balance at January 31, 2020</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="width: 61%; text-align: left; padding-left: 10pt">Accruals and adjustments</td> <td style="width: 1%; font-weight: bold">&nbsp;</td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,717</div></td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 1%; font-weight: bold">&nbsp;</td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">583</div></td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 1%; font-weight: bold">&nbsp;</td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,300</div></td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-left: 10pt">Cash draw downs</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,657</div></td> <td style="font-weight: bold; text-align: left">)</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(583</div></td> <td style="font-weight: bold; text-align: left">)</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(2,240</div></td> <td style="font-weight: bold; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt; padding-left: 10pt">Foreign exchange</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">10</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">10</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-bottom: 1pt">Balance at January 31, 2021</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">70</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">70</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> </tr> </table></div><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=120395209&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>nonnum: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>nonnum: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>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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623851479000">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 21 - 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, 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_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock', window );">Schedule of Cash Flow, Supplemental Disclosures [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td style="font-style: italic">Year Ended</td> <td style="font-weight: bold">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">2020</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">2019</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 61%; text-align: left">Trade accounts receivable</td> <td style="width: 1%; font-weight: bold">&nbsp;</td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">143</div></td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,733</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(135</div></td> <td style="width: 1%; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Other accounts receivable</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(7,098</div></td> <td style="font-weight: bold; text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(2,547</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(451</div></td> <td style="text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Prepaid expenses and other</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(5,029</div></td> <td style="font-weight: bold; text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(5,942</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(4,466</div></td> <td style="text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td>Inventory</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">99</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(345</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">74</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Accounts payable</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(686</div></td> <td style="font-weight: bold; text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">1,768</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,065</div></td> <td style="text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Accrued liabilities</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(999</div></td> <td style="font-weight: bold; text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,265</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,570</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Income taxes payable</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,835</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(1,550</div></td> <td style="text-align: left">)</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(2,423</div></td> <td style="text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Operating leases</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">283</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">546</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">-</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt">Deferred revenue</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5,877</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(4,184</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">)</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,047</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(3,575</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">)</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(5,256</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">)</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(3,849</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">)</td> </tr> </table></div><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>nonnum: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>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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623855917144">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 22 - Segmented Information (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock', window );">Schedule of Revenue from External Customers Attributed to Foreign Countries by Geographic Area [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td style="font-style: italic">Year Ended</td> <td style="font-weight: bold">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">2020</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">2019</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td>Revenues</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; width: 61%">United States</td> <td style="width: 1%; font-weight: bold">&nbsp;</td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">211,232</div></td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">202,814</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">165,115</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt">Europe, Middle-East and Africa</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">94,163</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">82,596</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">80,094</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt">Canada</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">29,388</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">27,304</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">18,167</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt">Asia Pacific</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">13,881</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">13,077</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">11,795</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">348,664</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">325,791</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">275,171</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> </tr> </table></div><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_ScheduleOfSegmentReportingInformationBySegmentTextBlock', window );">Schedule of Segment Reporting Information, by Segment [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td style="font-style: italic">Year Ended</td> <td style="font-weight: bold">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">2020</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">2019</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td>Revenues</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 10pt; width: 61%">Services</td> <td style="width: 1%; font-weight: bold">&nbsp;</td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">309,731</div></td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">284,654</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">241,543</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-left: 10pt">Professional services and other</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">33,879</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">33,555</div></td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">27,774</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-bottom: 1pt; padding-left: 10pt">Licenses</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5,054</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">7,582</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">5,854</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">348,664</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">325,791</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">275,171</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> </tr> </table></div><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_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock', window );">Schedule of Disclosure on Geographic Areas, Long-Lived Assets in Individual Foreign Countries by Country [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; min-; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="text-align: center; font-weight: bold">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-top: Black 1pt solid; text-align: right">January 31,</td> <td style="border-top: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom"> <td>&nbsp;</td> <td style="text-align: center; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">2021</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right">2020</td> <td style="border-bottom: Black 1pt solid; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-weight: normal; text-align: left">Total long-lived assets</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="width: 74%; text-align: left; padding-left: 7.5pt">United States</td> <td style="width: 1%; font-weight: bold">&nbsp;</td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 10%; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">92,442</div></td> <td style="width: 1%; font-weight: bold; text-align: left">&nbsp;</td> <td style="width: 1%">&nbsp;</td> <td style="width: 1%; text-align: left">&nbsp;</td> <td style="width: 10%; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">114,980</div></td> <td style="width: 1%; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-left: 7.5pt">Europe, Middle-East and Africa</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">39,769</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">31,299</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-left: 7.5pt">Canada</td> <td style="font-weight: bold">&nbsp;</td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td style="font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">107,472</div></td> <td style="font-weight: bold; text-align: left">&nbsp;</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right"><div style="display: inline; font-style: italic; font: inherit;">111,264</div></td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt; padding-left: 7.5pt">Asia Pacific</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">12,398</div></td> <td style="border-bottom: Black 1pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">13,144</div></td> <td style="border-bottom: Black 1pt solid; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-bottom: 1pt">&nbsp;</td> <td style="font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">252,081</div></td> <td style="border-bottom: Black 2pt solid; font-weight: bold; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2pt solid; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">270,687</div></td> <td style="border-bottom: Black 2pt solid; text-align: left">&nbsp;</td> </tr> </table></div><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=120311839&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>nonnum: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=120395209&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=120311839&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>nonnum: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=120311839&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=120311839&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=120311839&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>nonnum: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>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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623844807592">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 2 - Basis of Presentation (Details Textual) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 2019</div></th>
<th class="th"><div>Feb. 01, 2019</div></th>
<th class="th"><div>Feb. 01, 2018</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_ForeignCurrencyTransactionGainLossBeforeTax', window );">Foreign Currency Transaction Gain (Loss), before Tax, Total</a></td>
<td class="nump">$ 800<span></span>
</td>
<td class="nump">$ 600<span></span>
</td>
<td class="num">$ (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 " 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>
<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_us-gaap_ContractWithCustomerAssetNet', window );">Contract with Customer, Asset, after Allowance for Credit Loss, Total</a></td>
<td class="nump">1,353<span></span>
</td>
<td class="nump">1,107<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherAssetsNoncurrent', window );">Other Assets, Noncurrent, Total</a></td>
<td class="nump">15,550<span></span>
</td>
<td class="nump">13,520<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxLiabilitiesNet', window );">Deferred Income Tax Liabilities, Net, Total</a></td>
<td class="nump">29,385<span></span>
</td>
<td class="nump">15,067<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RetainedEarningsAccumulatedDeficit', window );">Retained Earnings (Accumulated Deficit), Ending Balance</a></td>
<td class="num">(83,670)<span></span>
</td>
<td class="num">(135,770)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Operating Lease, Liability, Total</a></td>
<td class="nump">13,063<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Operating Lease, Right-of-Use Asset</a></td>
<td class="nump">$ 12,165<span></span>
</td>
<td class="nump">$ 12,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_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201409Member', window );">Accounting Standards Update 2014-09 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetNet', window );">Contract with Customer, Asset, after Allowance for Credit Loss, 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">$ 500<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherAssetsNoncurrent', window );">Other Assets, Noncurrent, 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">4,200<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_DeferredIncomeTaxLiabilitiesNet', window );">Deferred Income Tax Liabilities, Net, 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">1,100<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RetainedEarningsAccumulatedDeficit', window );">Retained Earnings (Accumulated Deficit), Ending Balance</a></td>
<td class="text">&#160;<span></span>
</td>
<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,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_AdjustmentsForNewAccountingPronouncementsAxis=dsgx_TheAccountingStandardsUpdate201616Member', window );">The Accounting Standards Update 2016-16 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RetainedEarningsAccumulatedDeficit', window );">Retained Earnings (Accumulated Deficit), Ending Balance</a></td>
<td class="text">&#160;<span></span>
</td>
<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,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_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>
<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_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<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Operating Lease, Right-of-Use 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="nump">$ 10,400<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_EmployeeStockOptionMember', window );">Share-based Payment Arrangement, Option [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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_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>
<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_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>
<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>
<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_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>
<td class="text">&#160;<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_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>
<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>
<td class="text">&#160;<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_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>
<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_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>
<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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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>
<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>
<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_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>
<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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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>
<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] | Share-based Payment Arrangement, Option [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>
<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_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>
<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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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>
<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>
<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_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>
<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>
<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_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>
<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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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>
<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] | Share-based Payment Arrangement, Option [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>
<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_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>
<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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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>
<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>
<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_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>
<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>
<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_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>
<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 Relationships [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>
<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_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>
<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 Relationships [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>
<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_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>
<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>
<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_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>
<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>
<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_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>
<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 [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>
<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_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Finite-Lived Intangible Asset, 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>
<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 [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>
<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_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>
<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 );">Noncompete Agreements [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>
<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_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>
<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 );">Noncompete Agreements [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>
<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_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>
<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>num: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=121604090&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=121556615&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=121556615&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=120406818&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=120406818&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=109240200&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=121605123&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=6450222&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=121586364&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=121603541&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=121603541&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/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 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)(23)(a)(4))<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 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=121370832&amp;loc=SL117420844-207641<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 S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=121370832&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_AccountingStandardsUpdate201409Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_AccountingStandardsUpdate201409Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_AdjustmentsForNewAccountingPronouncementsAxis=dsgx_TheAccountingStandardsUpdate201616Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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=dsgx_TheAccountingStandardsUpdate201616Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_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>66
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623839552360">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 3 - Acquisitions (Details Textual)<br> shares in Thousands, $ in Thousands, $ in Millions</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="2"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="3">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<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>Aug. 21, 2018 </div>
<div>USD ($) </div>
<div>shares</div>
</th>
<th class="th">
<div>Aug. 21, 2018 </div>
<div>CAD ($) </div>
<div>shares</div>
</th>
<th class="th">
<div>Jun. 22, 2018 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Feb. 02, 2018 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jan. 31, 2021 </div>
<div>USD ($) </div>
<div>shares</div>
</th>
<th class="th">
<div>Jan. 31, 2020 </div>
<div>USD ($) </div>
<div>shares</div>
</th>
<th class="th">
<div>Jan. 31, 2019 </div>
<div>USD ($) </div>
<div>shares</div>
</th>
<th class="th">
<div>Aug. 21, 2018 </div>
<div>CAD ($)</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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Payments to Acquire Businesses, Net of Cash Acquired, 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">$ 48,403<span></span>
</td>
<td class="nump">$ 292,053<span></span>
</td>
<td class="nump">$ 67,932<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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,981<span></span>
</td>
<td class="nump">$ 3,457<span></span>
</td>
<td class="nump">$ 3,187<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="text">&#160;<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">296<span></span>
</td>
<td class="nump">46<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 " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Payments to Acquire Businesses, Net of Cash Acquired, Total</a></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="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>
<td class="text">&#160;<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_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="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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">24,095<span></span>
</td>
<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_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 " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Payments to Acquire Businesses, Net of Cash Acquired, Total</a></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="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>
<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_us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount', window );">Business Combination, Acquired Receivables, Gross Contractual Amount</a></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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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">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>
</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_BusinessCombinationContingentConsiderationLiability', window );">Business Combination, Contingent Consideration, Liability, Total</a></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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">6,533<span></span>
</td>
<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_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 " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Payments to Acquire Businesses, Net of Cash Acquired, Total</a></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="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>
<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_us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount', window );">Business Combination, Acquired Receivables, Gross Contractual Amount</a></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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquiredReceivablesFairValue', window );">Business Combination, Acquired Receivable, Fair Value</a></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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh', window );">Business Combination, Contingent Consideration Arrangements, Range of Outcomes, Value, High</a></td>
<td class="nump">$ 25,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_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="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_BusinessCombinationContingentConsiderationLiability', window );">Business Combination, Contingent Consideration, Liability, Total</a></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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">21,936<span></span>
</td>
<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 " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Payments to Acquire Businesses, Net of Cash Acquired, 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">48,403<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">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>
</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_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">9,400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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_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">$ 52,564<span></span>
</td>
<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 " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Payments to Acquire Businesses, Net of Cash Acquired, 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="nump">$ 248,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="nump">$ 239,863<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="nump">300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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_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="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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">250,055<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_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 " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Payments to Acquire Businesses, Net of Cash Acquired, 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">$ 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="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>
<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_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">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 " 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">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="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_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">$ 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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 " 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,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>
</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_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">23,345<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_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 " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Payments to Acquire Businesses, Net of Cash Acquired, 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">$ 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="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>
<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_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">900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_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">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="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_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="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>
</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_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">18,889<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_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 " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Payments to Acquire Businesses, Net of Cash Acquired, 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">$ 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="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>
<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_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 " 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">$ 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="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_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">$ 11,718<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_AljexSoftwareIncMember', window );">Aljex Software, Inc. [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 " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Payments to Acquire Businesses, Net of Cash Acquired, 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="nump">$ 32,400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 32,382<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">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="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_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">$ 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 " 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">32,230<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_VelocityMailMember', window );">Velocity Mail [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 " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Payments to Acquire Businesses, Net of Cash Acquired, 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">$ 26,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="nump">26,107<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">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>
</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_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">$ 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>
</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_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">26,005<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_PinPointMember', window );">PinPoint [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 " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Payments to Acquire Businesses, Net of Cash Acquired, 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">9,443<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 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>
</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_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">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>
</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_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="nump">$ 2,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="nump">$ 3.0<span></span>
</td>
</tr>
<tr class="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">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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">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>
</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_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="nump">$ 700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="nump">100<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 " 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="nump">$ 11,000<span></span>
</td>
<td class="nump">$ 14.4<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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,729<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=121647850&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=121647850&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=121647850&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=116868678&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_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=121586364&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_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_AljexSoftwareIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_AljexSoftwareIncMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_VelocityMailMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_VelocityMailMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_PinPointMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_PinPointMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>67
<FILENAME>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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623760619032">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 3 - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details)<br> $ in Thousands, $ in Millions</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="2"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<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>Aug. 21, 2018 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Aug. 21, 2018 </div>
<div>CAD ($)</div>
</th>
<th class="th">
<div>Jun. 22, 2018 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Feb. 02, 2018 </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>
<th class="th">
<div>Jan. 31, 2019 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 48,403<span></span>
</td>
<td class="nump">$ 292,053<span></span>
</td>
<td class="nump">$ 67,932<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_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">565,177<span></span>
</td>
<td class="nump">523,690<span></span>
</td>
<td class="nump">378,178<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_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">48,403<span></span>
</td>
<td class="nump">292,053<span></span>
</td>
<td class="nump">67,932<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 " 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="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="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_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"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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"> <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">(42)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">24,095<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">485<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="text"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">(776)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">(748)<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="text"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">(1,615)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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"> <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">(2,654)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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,182<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="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="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="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 Relationships [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 " 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">3,631<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_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="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_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">7,651<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_PeoplevoxMember', window );">Peoplevox [Member] | Trade Names [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 " 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"> <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_PeoplevoxMember', window );">Peoplevox [Member] | Noncompete Agreements [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 " 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">285<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>
</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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Cash, net of cash acquired</a></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="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="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="nump">100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">1,414<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">(218)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">6,533<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">253<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="text"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">(989)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">(102)<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="text"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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"> <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">(838)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">3,461<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 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="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="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 Relationships [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 " 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">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_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="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_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">3,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_KontainersMember', window );">Kontainers [Member] | Trade Names [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 " 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">30<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] | Noncompete Agreements [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 " 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">80<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>
</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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Cash, net of cash acquired</a></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="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="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"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">2,825<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">82<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">21,936<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">1,846<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">151<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">(668)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">(204)<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="nump">151<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">(4,012)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">(728)<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">(3,766)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">10,327<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Cash, net of cash acquired</a></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="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="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 Relationships [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 " 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">3,905<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] | 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 " 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">11,102<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] | Trade Names [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 " 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">77<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] | Noncompete Agreements [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 " 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">291<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 " 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">48,403<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_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="nump">100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">4,239<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">(178)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">52,564<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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,584<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">151<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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,433)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">(1,054)<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="nump">151<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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,627)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">(728)<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">(7,258)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">28,970<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">48,403<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] | Customer Relationships [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 " 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,336<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] | 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 " 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">21,753<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] | Trade Names [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 " 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">107<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] | Noncompete Agreements [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 " 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">$ 656<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>
</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_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">$ 248,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="nump">239,863<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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"> <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="nump">1,147<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">250,055<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">6,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_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">1,188<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">(840)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">(10,267)<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="text">&#160;<span></span>
</td>
<td class="nump">1,188<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">(282)<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="nump">25,968<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">118,785<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 248,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="nump">239,863<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="nump">9,045<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="nump">30<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="nump">30,924<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] | Customer Relationships [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 " 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">32,186<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] | 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 " 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">69,422<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] | Trade Names [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 " 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">528<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] | Noncompete Agreements [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 " 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,166<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>
</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_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">$ 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="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 " 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,450<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">62<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">23,345<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">689<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">68<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">(352)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">(278)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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="nump">68<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">(3,332)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">(1,225)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">12,670<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 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="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 " 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"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="nump">2,048<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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"> <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] | Customer Relationships [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 " 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">4,600<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] | 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 " 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">6,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_CoreTransportTechnologiesNzLimitedMember', window );">Core Transport Technologies NZ Limited [Member] | Trade Names [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 " 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">200<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] | Noncompete Agreements [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 " 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">300<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>
</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_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">$ 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="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="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_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"> <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="nump">250<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">18,889<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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,470<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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="nump">232<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">(874)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">(813)<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="text">&#160;<span></span>
</td>
<td class="nump">232<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">(2,316)<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">(2,276)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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,019<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 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="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="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_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"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="nump">257<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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"> <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] | Customer Relationships [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 " 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">10,839<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] | 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 " 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"> <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] | Trade Names [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 " 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">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_StepcomMember', window );">STEPcom [Member] | Noncompete Agreements [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 " 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">205<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>
</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_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">$ 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="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 " 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"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">11,718<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">815<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">194<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">(284)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">(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_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="nump">194<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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,352)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">(795)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">5,513<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 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="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 " 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"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="nump">35<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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"> <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] | Customer Relationships [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 " 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_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 " 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,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_BesttransportMember', window );">BestTransport [Member] | Trade Names [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 " 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">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_BusinessAcquisitionAxis=dsgx_BesttransportMember', window );">BestTransport [Member] | Noncompete Agreements [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 " 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">150<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_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 " 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">292,053<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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,450<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="nump">1,459<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">304,007<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">9,377<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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="nump">1,682<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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,350)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">(11,367)<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="text">&#160;<span></span>
</td>
<td class="nump">1,682<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">(7,282)<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="nump">21,672<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">146,987<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">292,053<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="nump">9,045<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="nump">2,370<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="nump">30,924<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_The2020AcquisitionsMember', window );">The 2020 Acquisitions [Member] | Customer Relationships [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 " 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">50,625<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_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 " 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,022<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_The2020AcquisitionsMember', window );">The 2020 Acquisitions [Member] | Trade Names [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 " 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">880<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_The2020AcquisitionsMember', window );">The 2020 Acquisitions [Member] | Noncompete Agreements [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 " 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,821<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_AljexSoftwareIncMember', window );">Aljex Software, Inc. [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 " 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">$ 32,400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">32,382<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_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="text"> <span></span>
</td>
</tr>
<tr class="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="num">(152)<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_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">32,230<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_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">607<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_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">(266)<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_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">(1,024)<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_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">(4,200)<span></span>
</td>
</tr>
<tr class="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">(4,883)<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_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">18,903<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_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">$ 32,400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">32,382<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_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="text"> <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_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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text"> <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_AljexSoftwareIncMember', window );">Aljex Software, Inc. [Member] | Customer Relationships [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 " 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">5,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_AljexSoftwareIncMember', window );">Aljex Software, Inc. [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 " 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">12,400<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_AljexSoftwareIncMember', window );">Aljex Software, Inc. [Member] | Trade Names [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 " 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">280<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_AljexSoftwareIncMember', window );">Aljex Software, Inc. [Member] | Noncompete Agreements [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 " 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">230<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_VelocityMailMember', window );">Velocity Mail [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 " 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">$ 26,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="nump">26,107<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_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="text"> <span></span>
</td>
</tr>
<tr class="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="num">(102)<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_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">26,005<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_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,407<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_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">(81)<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_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">(70)<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_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="text"> <span></span>
</td>
</tr>
<tr class="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">1,757<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_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">8,448<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_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">$ 26,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="nump">26,107<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_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="text"> <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_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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">501<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_VelocityMailMember', window );">Velocity Mail [Member] | Customer Relationships [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 " 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">7,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_VelocityMailMember', window );">Velocity Mail [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 " 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">7,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_VelocityMailMember', window );">Velocity Mail [Member] | Trade Names [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 " 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">100<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_VelocityMailMember', window );">Velocity Mail [Member] | Noncompete Agreements [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 " 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_PinPointMember', window );">PinPoint [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 " 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">9,443<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_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">714<span></span>
</td>
</tr>
<tr class="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">36<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_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="nump">$ 11,000<span></span>
</td>
<td class="nump">$ 14.4<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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,729<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_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">599<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_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">(559)<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_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">(574)<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_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,077)<span></span>
</td>
</tr>
<tr class="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">(2,611)<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_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">6,306<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">9,443<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_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">1,536<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_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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text"> <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_PinPointMember', window );">PinPoint [Member] | Customer Relationships [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 " 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">7,758<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_PinPointMember', window );">PinPoint [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 " 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="text"> <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_PinPointMember', window );">PinPoint [Member] | Trade Names [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 " 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">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_BusinessAcquisitionAxis=dsgx_PinPointMember', window );">PinPoint [Member] | Noncompete Agreements [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 " 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<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_The2019AcquisitionsMember', window );">The 2019 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 " 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">67,932<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_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">714<span></span>
</td>
</tr>
<tr class="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="num">(218)<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_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">69,964<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_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">2,613<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_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">(906)<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_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">(1,668)<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_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">(6,277)<span></span>
</td>
</tr>
<tr class="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">(5,737)<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_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">33,657<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_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">67,932<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_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">1,536<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_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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">501<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_The2019AcquisitionsMember', window );">The 2019 Acquisitions [Member] | Customer Relationships [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 " 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">20,858<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_The2019AcquisitionsMember', window );">The 2019 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 " 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">20,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_The2019AcquisitionsMember', window );">The 2019 Acquisitions [Member] | Trade Names [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 " 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">587<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_The2019AcquisitionsMember', window );">The 2019 Acquisitions [Member] | Noncompete Agreements [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 " 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">$ 599<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_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=121647850&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=121647850&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=121647850&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=121647850&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=121647850&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=121600890&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=121647850&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=121600890&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=121647850&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=121647850&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=121600890&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=121647850&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://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=121586364&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_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>
<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_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_AljexSoftwareIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_AljexSoftwareIncMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_VelocityMailMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_VelocityMailMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_PinPointMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_PinPointMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_The2019AcquisitionsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_The2019AcquisitionsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>68
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623848511192">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 3 - 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, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 2019</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 " 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,634<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>
</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_CashAcquiredFromAcquisition', window );">Cash acquired</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_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 " 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">$ 529<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 " 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">$ 170<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>
</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_CashAcquiredFromAcquisition', window );">Cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">213<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>
</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_CashAcquiredFromAcquisition', window );">Cash acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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 " 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">$ 507<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_AljexSoftwareIncMember', window );">Aljex Software, Inc. [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 " 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">$ 193<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_VelocityMailMember', window );">Velocity Mail [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 " 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="text"> <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_PinPointMember', window );">PinPoint [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 " 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">$ 769<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=121586364&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_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_AljexSoftwareIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_AljexSoftwareIncMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_VelocityMailMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_VelocityMailMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_PinPointMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_PinPointMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>69
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623846261352">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 3 - 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, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 2019</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 Relationships [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 " 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">10 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 Relationships [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 " 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">12 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 Relationships [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 " 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 Relationships [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 " 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">14 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 Relationships [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 " 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 Relationships [Member] | 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 " 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">9 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 Relationships [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 " 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 Relationships [Member] | Aljex Software, Inc. [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 " 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 Relationships [Member] | Velocity Mail [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 " 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=us-gaap_CustomerRelationshipsMember', window );">Customer Relationships [Member] | PinPoint [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 " 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=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 " 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] | 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 " 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=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 " 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 " 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">7 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] | 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 " 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] | 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 " 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] | Aljex Software, Inc. [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 " 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=dsgx_ExistingTechnologyMember', window );">Existing Technology [Member] | Velocity Mail [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 " 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 [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 " 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 [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 " 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 [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 " 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_TradeNamesMember', window );">Trade Names [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 " 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">8 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 [Member] | 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 " 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 [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 " 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 [Member] | Aljex Software, Inc. [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 " 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 [Member] | Velocity Mail [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 " 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">4 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 [Member] | PinPoint [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 " 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_NoncompeteAgreementsMember', window );">Noncompete Agreements [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 " 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 );">Noncompete Agreements [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 " 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 );">Noncompete Agreements [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 " 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 );">Noncompete Agreements [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 " 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 );">Noncompete Agreements [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 " 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 );">Noncompete Agreements [Member] | 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 " 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_NoncompeteAgreementsMember', window );">Noncompete Agreements [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 " 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">2 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 );">Noncompete Agreements [Member] | Aljex Software, Inc. [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 " 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 );">Noncompete Agreements [Member] | Velocity Mail [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 " 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 );">Noncompete Agreements [Member] | PinPoint [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 " 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>
</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_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_AljexSoftwareIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_AljexSoftwareIncMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_VelocityMailMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_VelocityMailMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_PinPointMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_PinPointMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>70
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623964639336">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 3 - 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, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 2019</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_BusinessAcquisitionsProFormaRevenue', window );">Revenues</a></td>
<td class="nump">$ 354,461<span></span>
</td>
<td class="nump">$ 341,376<span></span>
</td>
<td class="nump">$ 328,824<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss', window );">Net income</a></td>
<td class="nump">$ 51,302<span></span>
</td>
<td class="nump">$ 33,727<span></span>
</td>
<td class="nump">$ 25,370<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</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic', window );">Basic (in dollars per share)</a></td>
<td class="nump">$ 0.61<span></span>
</td>
<td class="nump">$ 0.41<span></span>
</td>
<td class="nump">$ 0.33<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_BusinessAcquisitionProFormaEarningsPerShareDiluted', window );">Diluted (in dollars per share)</a></td>
<td class="nump">$ 0.60<span></span>
</td>
<td class="nump">$ 0.41<span></span>
</td>
<td class="nump">$ 0.33<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>num: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>num: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>71
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623850180536">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 4 - Fair Value Measurements (Details Textual) - 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, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 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_dsgx_DerivativeInstrumentSharesOfCommonStockHeld', window );">Derivative Instrument, Shares of Common Stock Held (in shares)</a></td>
<td class="nump">226,525<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)</a></td>
<td class="nump">$ 25.70<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 " 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 Derivative</a></td>
<td class="nump">$ 3.4<span></span>
</td>
<td class="nump">$ 4.0<span></span>
</td>
<td class="nump">$ 1.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_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>num: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_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=121590274&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_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>72
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623849978216">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 4 - Fair Value Measurements - Derivative Instruments at Fair Value (Details) - USD ($)<br> $ in Thousands</strong></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_DerivativeAssets', window );">Equity contracts</a></td>
<td class="nump">$ 8,001<span></span>
</td>
<td class="nump">$ 5,656<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_HedgingDesignationAxis=us-gaap_DesignatedAsHedgingInstrumentMember', window );">Designated as Hedging Instrument [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeAssets', window );">Equity contracts</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <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_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Not Designated as Hedging Instrument [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeAssets', window );">Equity contracts</a></td>
<td class="nump">$ 8,001<span></span>
</td>
<td class="nump">$ 5,656<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_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://fasb.org/us-gaap/role/ref/legacyRef<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/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=121572278&amp;loc=d3e13433-108611<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 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_HedgingDesignationAxis=us-gaap_DesignatedAsHedgingInstrumentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_HedgingDesignationAxis=us-gaap_DesignatedAsHedgingInstrumentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_HedgingDesignationAxis=us-gaap_NondesignatedMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_HedgingDesignationAxis=us-gaap_NondesignatedMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623851500360">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 5 - Trade Accounts Receivable (Details Textual) - USD ($)<br> $ in Millions</strong></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_UnbilledReceivablesCurrent', window );">Unbilled Receivables, Current</a></td>
<td class="nump">$ 0.3<span></span>
</td>
<td class="nump">$ 1.4<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_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>74
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623848230840">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 5 - Trade Accounts Receivable - Trade Receivables (Details) - USD ($)<br> $ in Thousands</strong></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_AccountsReceivableGrossCurrent', window );">Trade accounts receivable</a></td>
<td class="nump">$ 39,536<span></span>
</td>
<td class="nump">$ 37,121<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_AllowanceForDoubtfulAccountsReceivableCurrent', window );">Less: Provision for credit losses</a></td>
<td class="num">(2,330)<span></span>
</td>
<td class="num">(2,003)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " 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">$ 37,206<span></span>
</td>
<td class="nump">$ 35,118<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=121593590&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=121593590&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=121593590&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=121566466&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=121593590&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=121611835&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=121599878&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>75
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623937085064">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 5 - Trade Accounts Receivable - Provision for Credit Losses (Details)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th">
<div>Jan. 31, 2021 </div>
<div>USD ($)</div>
</th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent', window );">Balance</a></td>
<td class="nump">$ 2,003<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_ProvisionForDoubtfulAccounts', window );">Current period provision for expected losses</a></td>
<td class="nump">1,681<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_AllowanceForDoubtfulAccountsReceivableWriteOffs', window );">Write-offs charged against the provision</a></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="nump">64<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_AllowanceForDoubtfulAccountsReceivableCurrent', window );">Balance</a></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=121611835&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=121599878&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=121599337&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=121599337&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=120395209&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>76
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623852786360">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 6 - Other Receivables (Details Textual) - USD ($)<br> $ in Thousands</strong></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_AmountsRecoverableFromFundsHeldInEscrow', window );">Amounts Recoverable from Funds Held in Escrow</a></td>
<td class="nump">$ 200<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_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>77
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623851457576">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 6 - Other Receivables - Other Receivables (Details) - USD ($)<br> $ in Thousands</strong></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_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions', window );">Net working capital adjustments receivable from acquisitions</a></td>
<td class="nump">$ 237<span></span>
</td>
<td class="text"> <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_OtherAssetsCurrent', window );">Other receivables</a></td>
<td class="nump">14,593<span></span>
</td>
<td class="nump">7,294<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " 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,830<span></span>
</td>
<td class="nump">$ 7,294<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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>78
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623851392472">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 7 - Inventory (Details Textual) - USD ($)<br> $ in Thousands</strong></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_InventoryValuationReserves', window );">Inventory Valuation Reserves, Ending Balance</a></td>
<td class="nump">$ 0<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_InventoryValuationReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 valuation reserve for inventory.</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 330<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB TOPIC 5.BB)<br> -URI http://asc.fasb.org/extlink&amp;oid=27011343&amp;loc=d3e100047-122729<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09)<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e24092-122690<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_InventoryValuationReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>79
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623846237496">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 8 - Property and Equipment - Property and Equipment (Details) - USD ($)<br> $ in Thousands</strong></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_PropertyPlantAndEquipmentGross', window );">Cost</a></td>
<td class="nump">$ 42,422<span></span>
</td>
<td class="nump">$ 38,770<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_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment', window );">Accumulated amortization</a></td>
<td class="nump">30,333<span></span>
</td>
<td class="nump">25,039<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " 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">12,089<span></span>
</td>
<td class="nump">13,731<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 " 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">37,469<span></span>
</td>
<td class="nump">34,442<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_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment', window );">Accumulated amortization</a></td>
<td class="nump">28,123<span></span>
</td>
<td class="nump">23,730<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 " 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,494<span></span>
</td>
<td class="nump">1,432<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_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment', window );">Accumulated amortization</a></td>
<td class="nump">1,081<span></span>
</td>
<td class="nump">816<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 " 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">807<span></span>
</td>
<td class="nump">778<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_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment', window );">Accumulated amortization</a></td>
<td class="nump">401<span></span>
</td>
<td class="nump">290<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 " 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,654<span></span>
</td>
<td class="nump">1,289<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_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment', window );">Accumulated amortization</a></td>
<td class="nump">728<span></span>
</td>
<td class="nump">203<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 " 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">$ 998<span></span>
</td>
<td class="nump">$ 829<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://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_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>80
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623944176664">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 9 - Intangible Assets (Details Textual) - USD ($)<br> $ in Thousands</strong></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_FiniteLivedIntangibleAssetsNet', window );">Finite-Lived Intangible Assets, Net, Ending Balance</a></td>
<td class="nump">$ 239,992<span></span>
</td>
<td class="nump">$ 256,956<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_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths', window );">Finite-Lived Intangible Asset, Expected Amortization, Year One</a></td>
<td class="nump">53,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo', window );">Finite-Lived Intangible Asset, Expected Amortization, Year Two</a></td>
<td class="nump">46,400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree', window );">Finite-Lived Intangible Asset, Expected Amortization, Year Three</a></td>
<td class="nump">34,300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour', window );">Finite-Lived Intangible Asset, Expected Amortization, Year Four</a></td>
<td class="nump">31,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive', window );">Finite-Lived Intangible Asset, Expected Amortization, Year Five</a></td>
<td class="nump">27,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive', window );">Finite-Lived Intangible Asset, Expected Amortization, after Year Five</a></td>
<td class="nump">$ 46,700<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>81
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623846236024">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 9 - Intangible Assets - Intangible Assets (Details) - USD ($)<br> $ in Thousands</strong></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_FiniteLivedIntangibleAssetsGross', window );">Intangible assets, cost</a></td>
<td class="nump">$ 555,423<span></span>
</td>
<td class="nump">$ 507,695<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_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Intangible assets, amortization cost</a></td>
<td class="nump">315,431<span></span>
</td>
<td class="nump">250,739<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " 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">239,992<span></span>
</td>
<td class="nump">256,956<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 Relationships [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Intangible assets, cost</a></td>
<td class="nump">240,479<span></span>
</td>
<td class="nump">226,514<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_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Intangible assets, amortization cost</a></td>
<td class="nump">119,361<span></span>
</td>
<td class="nump">98,241<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 );">Developed Technology Rights [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Intangible assets, cost</a></td>
<td class="nump">295,161<span></span>
</td>
<td class="nump">262,614<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_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Intangible assets, amortization cost</a></td>
<td class="nump">183,539<span></span>
</td>
<td class="nump">142,757<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 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Intangible assets, cost</a></td>
<td class="nump">8,844<span></span>
</td>
<td class="nump">8,582<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_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Intangible assets, amortization cost</a></td>
<td class="nump">5,996<span></span>
</td>
<td class="nump">5,124<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 );">Noncompete Agreements [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Intangible assets, cost</a></td>
<td class="nump">10,939<span></span>
</td>
<td class="nump">9,985<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_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Intangible assets, amortization cost</a></td>
<td class="nump">$ 6,535<span></span>
</td>
<td class="nump">$ 4,617<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>82
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623844657624">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 10 - Goodwill - 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, 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_Goodwill', window );">Balance</a></td>
<td class="nump">$ 523,690<span></span>
</td>
<td class="nump">$ 378,178<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_GoodwillTranslationAndPurchaseAccountingAdjustments', window );">Adjustments on account of foreign exchange</a></td>
<td class="nump">12,517<span></span>
</td>
<td class="num">(1,475)<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_Goodwill', window );">Balance</a></td>
<td class="nump">565,177<span></span>
</td>
<td class="nump">523,690<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 " 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">118,785<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GoodwillAcquiredDuringPeriod', window );">Goodwill Acquired During Period</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">118,785<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_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 " 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,670<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GoodwillAcquiredDuringPeriod', window );">Goodwill Acquired During Period</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">12,670<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_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 " 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,019<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GoodwillAcquiredDuringPeriod', window );">Goodwill Acquired During Period</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">10,019<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_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 " 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">5,513<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GoodwillAcquiredDuringPeriod', window );">Goodwill Acquired During Period</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">5,513<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_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 " 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,182<span></span>
</td>
<td class="text"> <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_Goodwill', window );">Balance</a></td>
<td class="nump">15,182<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>
</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_GoodwillAcquiredDuringPeriod', window );">Goodwill Acquired During Period</a></td>
<td class="nump">3,461<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="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 " 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">10,327<span></span>
</td>
<td class="text"> <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_Goodwill', window );">Balance</a></td>
<td class="nump">$ 10,327<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://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=116868678&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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>83
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623937079896">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 11 - Accrued Liabilities - Accrued Liabilities (Details) - USD ($)<br> $ in Thousands</strong></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_EmployeeRelatedLiabilitiesCurrent', window );">Accrued compensation and benefits</a></td>
<td class="nump">$ 24,643<span></span>
</td>
<td class="nump">$ 20,613<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_AccruedProfessionalFeesCurrent', window );">Accrued professional fees</a></td>
<td class="nump">1,188<span></span>
</td>
<td class="nump">1,010<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_OtherAccruedLiabilitiesCurrent', window );">Other accrued liabilities</a></td>
<td class="nump">13,048<span></span>
</td>
<td class="nump">13,253<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " 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">$ 38,879<span></span>
</td>
<td class="nump">$ 34,876<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=121566466&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=121566466&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=121566466&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=121566466&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=121566466&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>84
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623844668600">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 12 - Long-term Debt (Details Textual) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jan. 25, 2019</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_LettersOfCreditOutstandingAmount', window );">Letters of Credit Outstanding, Amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 200<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_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>
<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_us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity', window );">Line of Credit Facility, Maximum Borrowing Capacity</a></td>
<td class="nump">$ 350,000<span></span>
</td>
<td class="nump">350,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LineOfCredit', window );">Long-term Line of Credit, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 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>
<td class="text">&#160;<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_LineOfCreditFacilityMaximumBorrowingCapacity', window );">Line of Credit Facility, Maximum Borrowing Capacity</a></td>
<td class="nump">$ 500,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_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>
<td class="text">&#160;<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_DebtInstrumentTerm', window );">Debt Instrument, Term (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_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>
<td class="text">&#160;<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_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>
<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>
<td class="text">&#160;<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_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>
<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>
<td class="text">&#160;<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_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>
<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>
<td class="text">&#160;<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_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>
<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>num: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_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>num: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_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>
<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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>85
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623932869528">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 13 - Leases (Details Textual) - Maximum [Member]<br></strong></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_LesseeOperatingLeaseRemainingLeaseTerm', window );">Lessee, Operating Lease, Remaining Lease Term (Year)</a></td>
<td class="text">8 years<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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=121609121&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=121609121&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>
<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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>86
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623848530472">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 13 - Leases - Components of Operating Lease Expense (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, 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_OperatingLeaseCost', window );">Operating lease cost</a></td>
<td class="nump">$ 4,590<span></span>
</td>
<td class="nump">$ 4,902<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_ShortTermLeaseCost', window );">Short-term lease cost</a></td>
<td class="nump">502<span></span>
</td>
<td class="nump">866<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " 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">5,092<span></span>
</td>
<td class="nump">5,768<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_OperatingLeasePayments', window );">Operating cash outflows from operating leases included in measurement of lease liabilities</a></td>
<td class="nump">4,831<span></span>
</td>
<td class="nump">4,150<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_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability', window );">New ROU assets obtained in exchange for lease obligations</a></td>
<td class="nump">$ 2,337<span></span>
</td>
<td class="nump">$ 6,439<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_OperatingLeaseWeightedAverageRemainingLeaseTerm1', window );">Weighted average remaining lease term (years) (Year)</a></td>
<td class="text">3 years 292 days<span></span>
</td>
<td class="text">4 years 109 days<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent', window );">Weighted average discount rate (%)</a></td>
<td class="nump">2.50%<span></span>
</td>
<td class="nump">2.80%<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=121609121&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=121568110&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=121568110&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=121609121&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=121603541&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=121609121&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=121609121&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=121568110&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>num: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=121568110&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=121609121&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=121568110&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=121609121&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=121609121&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=121568110&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>87
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623848308536">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 13 - Leases - Maturities of Operating Lease Liabilities (Details) - USD ($)<br> $ in Thousands</strong></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_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths', window );">2022</a></td>
<td class="nump">$ 4,544<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo', window );">2023</a></td>
<td class="nump">3,480<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree', window );">2024</a></td>
<td class="nump">2,689<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour', window );">2025</a></td>
<td class="nump">1,725<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive', window );">2026</a></td>
<td class="nump">954<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive', window );">2027 and thereafter</a></td>
<td class="nump">420<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " 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">13,812<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount', window );">Less: imputed interest</a></td>
<td class="num">(749)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Total lease obligations</a></td>
<td class="nump">13,063<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Current</a></td>
<td class="nump">4,168<span></span>
</td>
<td class="nump">$ 3,928<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_OperatingLeaseLiabilityNoncurrent', window );">Long-term</a></td>
<td class="nump">$ 8,895<span></span>
</td>
<td class="nump">$ 9,477<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=121609121&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=121609121&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=121609121&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=121609121&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=121609121&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=121609121&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=121609121&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=121609121&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=121603541&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=121603541&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=121603541&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>88
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623839483912">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 14 - Commitments, Contingencies and Guarantees (Details Textual) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<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_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,500<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">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_dsgx_DeferredShareUnitLiabilityNumberOfCommonShares', window );">Deferred Share Unit Liability, Number of Common Shares (in shares)</a></td>
<td class="nump">226,525<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_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="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_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh', window );">Business Combination, Contingent Consideration Arrangements, Range of Outcomes, Value, High</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 31,600<span></span>
</td>
</tr>
<tr class="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">&#160;<span></span>
</td>
<td class="text">2 years<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="nump">$ 4,700<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>89
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623848428792">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 15 - Share Capital (Details Textual) - USD ($)<br> $ / shares in Units, $ in Millions</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1">6 Months Ended</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>Jun. 10, 2019</div></th>
<th class="th"><div>Jun. 06, 2018</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 2019</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_SharesIssuedPricePerShare', window );">Shares Issued, Price Per Share (in dollars per share)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 35.50<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="nump">6,900,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">6,900,000<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="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_OverallotmentOption', window );">Over-Allotment Option</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">15.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_StockIssuedDuringPeriodValueNewIssues', window );">Stock Issued During Period, Value, New Issues</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 245.0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dsgx_ProceedsFromIssuanceOfCommonStockNet', window );">Proceeds from Issuance of Common Stock, Net</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 236.6<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 6.2<span></span>
</td>
<td class="nump">$ 1.5<span></span>
</td>
<td class="nump">$ 0.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_ShelfProspectusMember', window );">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>
<td class="text">&#160;<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">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2 years 30 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 750.0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
<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_ShelfProspectusPeriod', window );">Shelf Prospectus Period (Month)</a></td>
<td class="text">2 years 30 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">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_OverallotmentOption">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 rights given to the underwriter to sell additional shares over the initial allotment.</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_OverallotmentOption</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>num: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_ProceedsFromIssuanceOfCommonStockNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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, net of expenses associated with the offering.</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_ProceedsFromIssuanceOfCommonStockNet</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_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=121586364&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_SharesIssuedPricePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 per unit amount of equity securities issued.</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_SharesIssuedPricePerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num: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_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=109259400&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_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=109259400&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_SubsidiarySaleOfStockAxis=dsgx_ShelfProspectusMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_ShelfProspectusMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsidiarySaleOfStockAxis=dsgx_The2020BaseShelfProspectusMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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>90
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623848572072">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 15 - 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>Jun. 10, 2019</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 2019</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_CommonStockSharesOutstanding', window );">Balance, beginning of year (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">84,156,316<span></span>
</td>
<td class="nump">76,865,000<span></span>
</td>
<td class="nump">76,773,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">338,000<span></span>
</td>
<td class="nump">95,000<span></span>
</td>
<td class="nump">46,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesNewIssues', window );">Issuance of common shares (in shares)</a></td>
<td class="nump">6,900,000<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">6,900,000<span></span>
</td>
<td class="text"> <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_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued', window );">Acquisitions (Note 3) (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">296,000<span></span>
</td>
<td class="nump">46,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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,494,658<span></span>
</td>
<td class="nump">84,156,316<span></span>
</td>
<td class="nump">76,865,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=109259400&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=109259400&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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>91
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623844538344">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 16 - Earnings Per Share (Details Textual) - shares<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 2019</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 " 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,750<span></span>
</td>
<td class="nump">350,464<span></span>
</td>
<td class="nump">271,869<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 " 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">71,161<span></span>
</td>
<td class="nump">5,909<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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 " 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">43,002<span></span>
</td>
<td class="nump">0<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=6371337&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>92
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623844645336">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 16 - 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, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 2019</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_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">$ 52,100<span></span>
</td>
<td class="nump">$ 36,997<span></span>
</td>
<td class="nump">$ 31,277<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_WeightedAverageNumberOfSharesOutstandingBasic', window );">Weighted average shares outstanding (in shares)</a></td>
<td class="nump">84,360<span></span>
</td>
<td class="nump">81,659<span></span>
</td>
<td class="nump">76,832<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_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Weighted average common and common equivalent shares outstanding (in shares)</a></td>
<td class="nump">85,756<span></span>
</td>
<td class="nump">82,867<span></span>
</td>
<td class="nump">77,791<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</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 " 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">$ 0.62<span></span>
</td>
<td class="nump">$ 0.45<span></span>
</td>
<td class="nump">$ 0.41<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_EarningsPerShareDiluted', window );">Diluted (in dollars per share)</a></td>
<td class="nump">$ 0.61<span></span>
</td>
<td class="nump">$ 0.45<span></span>
</td>
<td class="nump">$ 0.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_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 " 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">358<span></span>
</td>
<td class="nump">318<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_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 " 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,038<span></span>
</td>
<td class="nump">890<span></span>
</td>
<td class="nump">754<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 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22583-107794<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 11<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-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 45<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=d3e1448-109256<br><br>Reference 4: 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=109234566&amp;loc=d3e22595-107794<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 (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&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 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=d3e1337-109256<br><br>Reference 7: 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=120380238&amp;loc=d3e4984-109258<br><br>Reference 8: 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 9: 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=120380238&amp;loc=d3e3842-109258<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 7<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22644-107794<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=6371337&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 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=120395209&amp;loc=SL114868664-224227<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 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=d3e1252-109256<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 60B<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=SL5780133-109256<br><br>Reference 15: 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>num: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=120380238&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=109234566&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=120380238&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=121326447&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=109234566&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=109234566&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=109234566&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=121326447&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 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 10: 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=6371337&amp;loc=d3e3550-109257<br><br>Reference 11: 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 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 11<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-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 45<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=d3e1337-109256<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=120395209&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>num: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=121326447&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=6371337&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=121326447&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=121326447&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://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=121641772&amp;loc=SL7669619-108580<br><br>Reference 2: 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=120311839&amp;loc=d3e8924-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 11<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<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 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 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 (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&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 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&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 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 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 4<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22595-107794<br><br>Reference 9: 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=121641772&amp;loc=SL7669625-108580<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=120311839&amp;loc=d3e8736-108599<br><br>Reference 11: 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 12: 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=120395209&amp;loc=SL114868664-224227<br><br>Reference 13: 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=121586364&amp;loc=d3e3602-108585<br><br>Reference 14: 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=109234566&amp;loc=d3e22499-107794<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=109234566&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 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=75031198&amp;loc=d3e14064-108612<br><br>Reference 17: 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=120311839&amp;loc=d3e8906-108599<br><br>Reference 18: 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=109234566&amp;loc=d3e22583-107794<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://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=121326447&amp;loc=SL5780133-109256<br><br>Reference 21: 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 22: 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=120311839&amp;loc=d3e8933-108599<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=109234566&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_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=6371337&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=121326447&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=6371337&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=121326447&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_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_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>93
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623760456184">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 17 - Stock-based Compensation Plans (Details Textual) - 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, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 2019</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_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost', window );">Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Share-based Compensation Cost</a></td>
<td class="nump">$ 700<span></span>
</td>
<td class="nump">$ 700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions', window );">Share-based Payment Arrangement, Exercise of Option, Tax Benefit</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 100<span></span>
</td>
<td class="nump">$ 200<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number, Ending Balance (in shares)</a></td>
<td class="nump">1,147,720<span></span>
</td>
<td class="nump">1,127,822<span></span>
</td>
<td class="nump">879,338<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">381,859<span></span>
</td>
<td class="nump">367,173<span></span>
</td>
<td class="nump">272,144<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_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">$ 10.19<span></span>
</td>
<td class="nump">$ 8.99<span></span>
</td>
<td class="nump">$ 7.10<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue', window );">Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period, Intrinsic Value</a></td>
<td class="nump">$ 10,800<span></span>
</td>
<td class="nump">$ 2,000<span></span>
</td>
<td class="nump">$ 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_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 " 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">$ 5,100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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 255 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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,300<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 " 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">$ 4,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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 73 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue', window );">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period, Fair Value</a></td>
<td class="nump">$ 1,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_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 " 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">$ 2,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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 292 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue', window );">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period, Fair Value</a></td>
<td class="nump">$ 1,400<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 " 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,147,720<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">381,859<span></span>
</td>
<td class="nump">367,173<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 10.19<span></span>
</td>
<td class="nump">$ 8.99<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 " 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,303,444<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 " 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<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_dsgx_DeferredShareUnitsOutstandingNumber', window );">Deferred Share Units Outstanding Number (in shares)</a></td>
<td class="nump">226,525<span></span>
</td>
<td class="nump">251,422<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent', window );">Deferred Compensation Share-based Arrangements, Liability, Current and Noncurrent</a></td>
<td class="nump">$ 13,800<span></span>
</td>
<td class="nump">$ 11,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_dsgx_DeferredShareUnitsGrantsInPeriod', window );">Deferred Share Units Grants In Period (in shares)</a></td>
<td class="nump">23,369<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">48,266<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,600<span></span>
</td>
<td class="nump">5,000<span></span>
</td>
<td class="nump">2,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_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 " 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,500<span></span>
</td>
<td class="nump">1,100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent', window );">Deferred Compensation Share-based Arrangements, Liability, Current and Noncurrent</a></td>
<td class="nump">900<span></span>
</td>
<td class="nump">800<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,100<span></span>
</td>
<td class="nump">$ 900<span></span>
</td>
<td class="nump">$ 800<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=84230637&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=84230637&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://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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 share-based awards for which the grantee gained the right by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash.</p></div>
<a href="javascript:void(0);" onclick="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>num: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>94
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623760596936">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 17 - 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, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 2019</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_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">$ 6,313<span></span>
</td>
<td class="nump">$ 4,909<span></span>
</td>
<td class="nump">$ 3,710<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 " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">319<span></span>
</td>
<td class="nump">220<span></span>
</td>
<td class="nump">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_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 " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">896<span></span>
</td>
<td class="nump">706<span></span>
</td>
<td class="nump">436<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 " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">404<span></span>
</td>
<td class="nump">281<span></span>
</td>
<td class="nump">184<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 " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">$ 4,694<span></span>
</td>
<td class="nump">$ 3,702<span></span>
</td>
<td class="nump">$ 2,930<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=115993241&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>95
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623848168184">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 17 - 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, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 2019</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate', window );">Expected dividend yield (%)</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate', window );">Expected volatility (%)</a></td>
<td class="nump">26.40%<span></span>
</td>
<td class="nump">23.50%<span></span>
</td>
<td class="nump">23.60%<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate', window );">Risk-free rate (%)</a></td>
<td class="nump">0.70%<span></span>
</td>
<td class="nump">1.40%<span></span>
</td>
<td class="nump">2.00%<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_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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 dividend rate (a percentage of the share price) to be paid (expected dividends) to holders of the underlying shares over the option's term.</p></div>
<a href="javascript:void(0);" onclick="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)(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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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>num: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>num: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=115993241&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>96
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623760441880">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 17 - 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, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 2019</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Number of Stock Options Outstanding (in shares)</a></td>
<td class="nump">1,127,822<span></span>
</td>
<td class="nump">879,338<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Weighted-Average Exercise Price (in dollars per share)</a></td>
<td class="nump">$ 26.82<span></span>
</td>
<td class="nump">$ 21.41<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Weighted-Average Remaining Contractual Life (Year)</a></td>
<td class="text">4 years 328 days<span></span>
</td>
<td class="text">4 years 219 days<span></span>
</td>
<td class="text">4 years 255 days<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue', window );">Aggregate Intrinsic Value</a></td>
<td class="nump">$ 28.1<span></span>
</td>
<td class="nump">$ 20.2<span></span>
</td>
<td class="nump">$ 8.7<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross', window );">Granted, shares (in shares)</a></td>
<td class="nump">381,859<span></span>
</td>
<td class="nump">367,173<span></span>
</td>
<td class="nump">272,144<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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice', window );">Granted, weighted-average exercise price (in dollars per share)</a></td>
<td class="nump">$ 41.51<span></span>
</td>
<td class="nump">$ 38.06<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercised, shares (in shares)</a></td>
<td class="num">(338,342)<span></span>
</td>
<td class="num">(94,970)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice', window );">Exercised, weighted-average exercise price (in dollars per share)</a></td>
<td class="nump">$ 18.43<span></span>
</td>
<td class="nump">$ 15.62<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod', window );">Forfeited, shares (in shares)</a></td>
<td class="num">(23,619)<span></span>
</td>
<td class="num">(23,719)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice', window );">Forfeited, weighted-average exercise price (in dollars per share)</a></td>
<td class="nump">$ 33.88<span></span>
</td>
<td class="nump">$ 31.93<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="nump">879,338<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="nump">$ 21.41<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber', window );">Vested or expected to vest, shares (in shares)</a></td>
<td class="nump">1,147,720<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 33.77<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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 328 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Vested or expected to vest, aggregate intrinsic value</a></td>
<td class="nump">$ 28.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 " 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">646,065<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Exercisable, weighted-average exercise price (in dollars per share)</a></td>
<td class="nump">$ 29.52<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1', window );">Exercisable, weighted-average remaining contractual life (Year)</a></td>
<td class="text">4 years 109 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1', window );">Exercisable, aggregate intrinsic value</a></td>
<td class="nump">$ 18.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>num: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>num: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>num: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>num: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>num: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>num: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=109259400&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>97
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623844555208">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 17 - 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, 2021 </div>
<div>$ / shares </div>
<div>shares</div>
</th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1', window );">Weighted Average Exercise Price, Options Outstanding (in dollars per share)</a></td>
<td class="nump">$ 33.77<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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions', window );">Number of Stock Options, Options Outstanding (in shares) | shares</a></td>
<td class="nump">1,147,720<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_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2', window );">Weighted Average Remaining Contractual Life, Options Outstanding (Year)</a></td>
<td class="text">4 years 328 days<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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.52<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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions', window );">Number of Stock Options, Options Exercisable (in shares) | shares</a></td>
<td class="nump">646,065<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 " 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">$ 11.32<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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit', window );">Range of Exercise Prices, Upper Limit (in dollars per share)</a></td>
<td class="nump">22.34<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_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1', window );">Weighted Average Exercise Price, Options Outstanding (in dollars per share)</a></td>
<td class="nump">$ 21.06<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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions', window );">Number of Stock Options, Options Outstanding (in shares) | shares</a></td>
<td class="nump">220,559<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_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2', window );">Weighted Average Remaining Contractual Life, Options Outstanding (Year)</a></td>
<td class="text">2 years 328 days<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1', window );">Weighted Average Exercise Price, Options Exercisable (in dollars per share)</a></td>
<td class="nump">$ 21.01<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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions', window );">Number of Stock Options, Options Exercisable (in shares) | shares</a></td>
<td class="nump">203,459<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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 " 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">$ 25.65<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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit', window );">Range of Exercise Prices, Upper Limit (in dollars per share)</a></td>
<td class="nump">27.23<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_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1', window );">Weighted Average Exercise Price, Options Outstanding (in dollars per share)</a></td>
<td class="nump">$ 27.22<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions', window );">Number of Stock Options, Options Outstanding (in shares) | shares</a></td>
<td class="nump">217,381<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_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2', window );">Weighted Average Remaining Contractual Life, Options Outstanding (Year)</a></td>
<td class="text">4 years 73 days<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1', window );">Weighted Average Exercise Price, Options Exercisable (in dollars per share)</a></td>
<td class="nump">$ 27.23<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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions', window );">Number of Stock Options, Options Exercisable (in shares) | shares</a></td>
<td class="nump">186,707<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 " 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">$ 37.66<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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit', window );">Range of Exercise Prices, Upper Limit (in dollars per share)</a></td>
<td class="nump">39.30<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_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1', window );">Weighted Average Exercise Price, Options Outstanding (in dollars per share)</a></td>
<td class="nump">$ 38.09<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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions', window );">Number of Stock Options, Options Outstanding (in shares) | shares</a></td>
<td class="nump">636,869<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_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2', window );">Weighted Average Remaining Contractual Life, Options Outstanding (Year)</a></td>
<td class="text">5 years 255 days<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1', window );">Weighted Average Exercise Price, Options Exercisable (in dollars per share)</a></td>
<td class="nump">$ 37.96<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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions', window );">Number of Stock Options, Options Exercisable (in shares) | shares</a></td>
<td class="nump">255,899<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 " 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">$ 49.04<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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit', window );">Range of Exercise Prices, Upper Limit (in dollars per share)</a></td>
<td class="nump">55.04<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1', window );">Weighted Average Exercise Price, Options Outstanding (in dollars per share)</a></td>
<td class="nump">$ 54.11<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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions', window );">Number of Stock Options, Options Outstanding (in shares) | shares</a></td>
<td class="nump">72,911<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_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2', window );">Weighted Average Remaining Contractual Life, Options Outstanding (Year)</a></td>
<td class="text">6 years 255 days<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1', window );">Weighted Average Exercise Price, Options Exercisable (in dollars per share)</a></td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions', window );">Number of Stock Options, Options Exercisable (in shares) | shares</a></td>
<td class="text"> <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>num: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>num: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>num: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>num: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>98
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623846473320">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 17 - 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, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 2019</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross', window );">Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Gross (in shares)</a></td>
<td class="nump">381,859<span></span>
</td>
<td class="nump">367,173<span></span>
</td>
<td class="nump">272,144<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Granted, Weighted- Average Grant-Date Fair Value per Share (in dollars per share)</a></td>
<td class="nump">$ 10.19<span></span>
</td>
<td class="nump">$ 8.99<span></span>
</td>
<td class="nump">$ 7.10<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 " 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">409,653<span></span>
</td>
<td class="nump">325,218<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 8.03<span></span>
</td>
<td class="nump">$ 6.18<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">381,859<span></span>
</td>
<td class="nump">367,173<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 10.19<span></span>
</td>
<td class="nump">$ 8.99<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares', window );">Vested (in shares)</a></td>
<td class="num">(266,238)<span></span>
</td>
<td class="num">(259,269)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 8.19<span></span>
</td>
<td class="nump">$ 6.96<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares', window );">Forfeited (in shares)</a></td>
<td class="num">(23,619)<span></span>
</td>
<td class="num">(23,469)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 4.87<span></span>
</td>
<td class="nump">$ 7.69<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="nump">325,218<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_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="nump">$ 6.18<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>num: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>num: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>num: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>num: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>99
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623846175480">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 17 - 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, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 2019</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber', window );">Vested or expected to vest, shares (in shares)</a></td>
<td class="nump">1,147,720<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 33.77<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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 328 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Vested or expected to vest, aggregate intrinsic value</a></td>
<td class="nump">$ 28.1<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 " 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">629,874<span></span>
</td>
<td class="nump">530,383<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 21.19<span></span>
</td>
<td class="nump">$ 18.02<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms', window );">Weighted-Average Remaining Contractual, PSU (Year)</a></td>
<td class="text">4 years 255 days<span></span>
</td>
<td class="text">5 years<span></span>
</td>
<td class="text">5 years 182 days<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding', window );">Aggregate Intrinsic Value, PSU</a></td>
<td class="nump">$ 44.0<span></span>
</td>
<td class="nump">$ 28.2<span></span>
</td>
<td class="nump">$ 16.6<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Number of PSUs Granted (in shares)</a></td>
<td class="nump">85,334<span></span>
</td>
<td class="nump">53,729<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 54.24<span></span>
</td>
<td class="nump">$ 53.65<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod', window );">Performance units issued (in shares)</a></td>
<td class="nump">40,665<span></span>
</td>
<td class="nump">45,762<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">$ 29.08<span></span>
</td>
<td class="nump">$ 23.24<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="nump">530,383<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_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="nump">$ 18.02<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber', window );">Vested or expected to vest, shares (in shares)</a></td>
<td class="nump">755,873<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 25.17<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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 255 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Vested or expected to vest, aggregate intrinsic value</a></td>
<td class="nump">$ 44.0<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">562,459<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">$ 17.21<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 182 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">$ 32.8<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>num: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>num: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>num: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>num: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_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>num: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>100
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623849955112">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 17 - 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, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 2019</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice', window );">Vested or expected to vest, weighted-average exercise price (in dollars per share)</a></td>
<td class="nump">$ 33.77<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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 328 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Vested or expected to vest, aggregate intrinsic value</a></td>
<td class="nump">$ 28.1<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 " 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">374,677<span></span>
</td>
<td class="nump">337,066<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 16.57<span></span>
</td>
<td class="nump">$ 14.42<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms', window );">Weighted-Average Remaining Contractual, PSU (Year)</a></td>
<td class="text">4 years 255 days<span></span>
</td>
<td class="text">5 years<span></span>
</td>
<td class="text">5 years 219 days<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding', window );">Aggregate Intrinsic Value, PSU</a></td>
<td class="nump">$ 25.2<span></span>
</td>
<td class="nump">$ 16.8<span></span>
</td>
<td class="nump">$ 10.6<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Number of PSUs Granted (in shares)</a></td>
<td class="nump">57,518<span></span>
</td>
<td class="nump">37,611<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 43.25<span></span>
</td>
<td class="nump">$ 38.04<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="nump">337,066<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_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="nump">$ 14.42<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber', window );">Vested or expected to vest, RSU (in shares)</a></td>
<td class="nump">432,195<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 19.98<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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 255 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Vested or expected to vest, aggregate intrinsic value</a></td>
<td class="nump">$ 25.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_dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable', window );">Exercisable, number of units (in shares)</a></td>
<td class="nump">375,845<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">$ 16.50<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 36 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">$ 21.9<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>num: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>num: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>num: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_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>num: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>101
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623849716184">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 17 - 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, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 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_dsgx_CRSUAwardsOutstandingNumber', window );">Number of Units Outstanding, CRSU (in shares)</a></td>
<td class="nump">42,727<span></span>
</td>
<td class="nump">45,063<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 182 days<span></span>
</td>
<td class="text">1 year 219 days<span></span>
</td>
<td class="text">1 year 219 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">26,629<span></span>
</td>
<td class="nump">30,086<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">(30,340)<span></span>
</td>
<td class="num">(32,422)<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">(248)<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_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="nump">45,063<span></span>
</td>
</tr>
<tr class="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">38,628<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 182 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>102
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623760482072">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 18 - Income Taxes (Details Textual) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 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_dsgx_IncomeBeforeTaxesPercent', window );">Income Before Taxes, Percent</a></td>
<td class="nump">26.00%<span></span>
</td>
<td class="nump">23.00%<span></span>
</td>
<td class="nump">21.00%<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_EffectiveIncomeTaxRateContinuingOperations', window );">Effective Income Tax Rate Reconciliation, Percent, Total</a></td>
<td class="nump">5.00%<span></span>
</td>
<td class="nump">11.00%<span></span>
</td>
<td class="nump">15.00%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UndistributedEarningsOfForeignSubsidiaries', window );">Undistributed Earnings of Foreign Subsidiaries</a></td>
<td class="nump">$ 432.7<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent', window );">Liability for Uncertainty in Income Taxes, Noncurrent</a></td>
<td class="nump">8.4<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate', window );">Unrecognized Tax Benefits that Would Impact Effective Tax Rate</a></td>
<td class="nump">8.2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">1.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_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 " 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.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 " 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.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_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>num: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://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=116825942&amp;loc=d3e330036-122817<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<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 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=84230637&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://fasb.org/us-gaap/role/ref/legacyRef<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 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=116825942&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=84230637&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=84230637&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>num: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=84230637&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=121573983&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=84230637&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>103
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623943945224">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 18 - 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, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 2019</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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments', window );">Income (loss) from continuing operations</a></td>
<td class="nump">$ 70,369<span></span>
</td>
<td class="nump">$ 48,033<span></span>
</td>
<td class="nump">$ 39,510<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 " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments', window );">Income (loss) from continuing operations</a></td>
<td class="nump">31,307<span></span>
</td>
<td class="nump">19,557<span></span>
</td>
<td class="nump">16,715<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</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments', window );">Income (loss) from continuing operations</a></td>
<td class="nump">26,072<span></span>
</td>
<td class="nump">19,962<span></span>
</td>
<td class="nump">11,077<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 " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments', window );">Income (loss) from continuing operations</a></td>
<td class="nump">$ 12,990<span></span>
</td>
<td class="nump">$ 8,516<span></span>
</td>
<td class="nump">$ 11,718<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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 before deduction of income tax expense (benefit) and income (loss) attributable to noncontrolling interest, and addition of income (loss) from equity method investments.</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 (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&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 32<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&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 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8906-108599<br><br>Reference 4: 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=120311839&amp;loc=d3e8924-108599<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<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)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<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> -URI http://asc.fasb.org/extlink&amp;oid=120311839&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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>104
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623844643208">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 18 - 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, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 2019</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_CurrentIncomeTaxExpenseBenefit', window );">Current income tax expense</a></td>
<td class="nump">$ 3,746<span></span>
</td>
<td class="nump">$ 5,295<span></span>
</td>
<td class="nump">$ 6,042<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_DeferredIncomeTaxExpenseBenefit', window );">Deferred tax expense</a></td>
<td class="nump">14,523<span></span>
</td>
<td class="nump">5,743<span></span>
</td>
<td class="nump">2,191<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_IncomeTaxExpenseBenefit', window );">Income tax expense</a></td>
<td class="nump">18,269<span></span>
</td>
<td class="nump">11,038<span></span>
</td>
<td class="nump">8,233<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 " 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,875<span></span>
</td>
<td class="nump">1,020<span></span>
</td>
<td class="nump">3,037<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_DeferredIncomeTaxExpenseBenefit', window );">Deferred tax expense</a></td>
<td class="nump">7,047<span></span>
</td>
<td class="nump">5,008<span></span>
</td>
<td class="nump">2,531<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=country_US', window );">UNITED STATES</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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_CurrentIncomeTaxExpenseBenefit', window );">Current income tax expense</a></td>
<td class="num">(3,050)<span></span>
</td>
<td class="nump">3,496<span></span>
</td>
<td class="nump">1,298<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_DeferredIncomeTaxExpenseBenefit', window );">Deferred tax expense</a></td>
<td class="nump">9,537<span></span>
</td>
<td class="nump">1,390<span></span>
</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_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 " 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,921<span></span>
</td>
<td class="nump">779<span></span>
</td>
<td class="nump">1,707<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_DeferredIncomeTaxExpenseBenefit', window );">Deferred tax expense</a></td>
<td class="num">$ (2,061)<span></span>
</td>
<td class="num">$ (655)<span></span>
</td>
<td class="num">$ (407)<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=116825942&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 9<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32639-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 S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.2)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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=116825942&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=116825942&amp;loc=d3e330036-122817<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<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 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=116825942&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=121586364&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=84230637&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=116825942&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=84230637&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=120311839&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=109234566&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=120385591&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=109234566&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>105
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623855201624">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 18 - Income Taxes - Components of Deferred Income Tax Assets and Liabilities (Details) - USD ($)<br> $ in Thousands</strong></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_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities', window );">Accrued liabilities not currently deductible</a></td>
<td class="nump">$ 4,471<span></span>
</td>
<td class="nump">$ 14,838<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_DeferredTaxAssetsOperatingLossCarryforwards', window );">Accumulated net operating losses</a></td>
<td class="nump">12,866<span></span>
</td>
<td class="nump">10,579<span></span>
</td>
</tr>
<tr class="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">1,596<span></span>
</td>
<td class="text"> <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_DeferredTaxAssetsPropertyPlantAndEquipment', window );">Difference between tax and accounting basis of property and equipment</a></td>
<td class="nump">23,754<span></span>
</td>
<td class="nump">33,929<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_DeferredTaxAssetsTaxCreditCarryforwardsResearch', window );">Research and development and other tax credits and expenses</a></td>
<td class="nump">1,649<span></span>
</td>
<td class="nump">756<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " 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">44,336<span></span>
</td>
<td class="nump">60,102<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_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets', window );">Difference between tax and accounting basis of intangible assets</a></td>
<td class="num">(45,030)<span></span>
</td>
<td class="num">(41,381)<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_DeferredTaxLiabilitiesPropertyPlantAndEquipment', window );">Difference between tax and accounting basis of property and equipment</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesOther', window );">Other temporary differences</a></td>
<td class="num">(2,109)<span></span>
</td>
<td class="num">(1,716)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " 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">(47,139)<span></span>
</td>
<td class="num">(43,097)<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_dsgx_DeferredTaxAssetsNetBeforeValuationAllowance', window );">Net deferred income taxes</a></td>
<td class="num">(2,803)<span></span>
</td>
<td class="nump">17,005<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_DeferredTaxAssetsValuationAllowance', window );">Valuation allowance</a></td>
<td class="num">(11,365)<span></span>
</td>
<td class="num">(10,470)<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_dsgx_DeferredTaxAssetsLiabilitesNet1', window );">Net deferred income taxes, net of valuation allowance</a></td>
<td class="num">$ (14,168)<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_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=84230637&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=84230637&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=84230637&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=84230637&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=84230637&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=84230637&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=84230637&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=84230637&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=84230637&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=84230637&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=84230637&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=84230637&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=84230637&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=84230637&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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 property, plant, and equipment.</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=84230637&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=84230637&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_DeferredTaxLiabilitiesPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>106
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623849963192">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 18 - 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, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 2019</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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments', window );">Income before income taxes</a></td>
<td class="nump">$ 70,369<span></span>
</td>
<td class="nump">$ 48,033<span></span>
</td>
<td class="nump">$ 39,510<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_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 " 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">$ 18,648<span></span>
</td>
<td class="nump">$ 12,729<span></span>
</td>
<td class="nump">$ 10,470<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_IncomeTaxReconciliationNondeductibleExpenseAmortization', window );">Permanent differences including amortization of intangible assets</a></td>
<td class="nump">875<span></span>
</td>
<td class="num">(673)<span></span>
</td>
<td class="num">(133)<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_IncomeTaxReconciliationForeignIncomeTaxRateDifferential', window );">Effect of differences between Canadian and foreign tax rates</a></td>
<td class="num">(600)<span></span>
</td>
<td class="num">(274)<span></span>
</td>
<td class="num">(172)<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_IncomeTaxReconciliationChangeInEnactedTaxRate', window );">Effect of rate changes on current year timing differences</a></td>
<td class="num">(1,063)<span></span>
</td>
<td class="num">(609)<span></span>
</td>
<td class="num">(245)<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_IncomeTaxReconciliationPriorYearIncomeTaxes', window );">Adjustments relating to previous periods</a></td>
<td class="num">(1,034)<span></span>
</td>
<td class="nump">94<span></span>
</td>
<td class="num">(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_dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions', window );">Increase (decrease) in accruals for uncertain tax positions</a></td>
<td class="nump">1,289<span></span>
</td>
<td class="num">(1,042)<span></span>
</td>
<td class="num">(515)<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_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance', window );">Valuation allowance</a></td>
<td class="nump">254<span></span>
</td>
<td class="nump">692<span></span>
</td>
<td class="num">(344)<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_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost', window );">Stock based compensation</a></td>
<td class="nump">100<span></span>
</td>
<td class="nump">352<span></span>
</td>
<td class="nump">231<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_IncomeTaxReconciliationOtherAdjustments', window );">Other, including foreign exchange</a></td>
<td class="num">(200)<span></span>
</td>
<td class="num">(231)<span></span>
</td>
<td class="num">(86)<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_IncomeTaxExpenseBenefit', window );">Income tax expense</a></td>
<td class="nump">$ 18,269<span></span>
</td>
<td class="nump">$ 11,038<span></span>
</td>
<td class="nump">$ 8,233<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=116825942&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 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&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>num: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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 before deduction of income tax expense (benefit) and income (loss) attributable to noncontrolling interest, and addition of income (loss) from equity method investments.</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 (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&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 32<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&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 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8906-108599<br><br>Reference 4: 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=120311839&amp;loc=d3e8924-108599<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<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)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<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> -URI http://asc.fasb.org/extlink&amp;oid=120311839&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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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=116825942&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=84230637&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=120311839&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=109234566&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=120385591&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=109234566&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=84230637&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=120406818&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=84230637&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=84230637&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=84230637&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=84230637&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=84230637&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=84230637&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=84230637&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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>107
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623845942072">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 18 - Income Taxes - Income Tax Loss Carryforwards Expiration Dates (Details)<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Jan. 31, 2021 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">$ 60,993<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 );">Tax Year 2022 [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_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">285<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 );">Tax Year 2023 [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_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">394<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 );">Tax Year 2024 [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_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">221<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_TaxYear2025Member', window );">Tax Year 2025 [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_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">51<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 );">Tax Year 2026 [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_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="text"> <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 );">After Tax Year 2026 [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_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">60,042<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=us-gaap_DomesticCountryMember', window );">Domestic Tax Authority [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_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">2,877<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=us-gaap_DomesticCountryMember', window );">Domestic Tax Authority [Member] | Tax Year 2026 [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_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="text"> <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 Agency [Member] | Foreign Tax Authority [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_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">6,969<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 Agency [Member] | Foreign Tax Authority [Member] | Tax Year 2022 [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_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="text"> <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 Agency [Member] | Foreign Tax Authority [Member] | Tax Year 2023 [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_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="text"> <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 Agency [Member] | Foreign Tax Authority [Member] | Tax Year 2024 [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_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="text"> <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 Agency [Member] | Foreign Tax Authority [Member] | Tax Year 2025 [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_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="text"> <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 Agency [Member] | Foreign Tax Authority [Member] | Tax Year 2026 [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_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="text"> <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 Agency [Member] | Foreign Tax Authority [Member] | After Tax Year 2026 [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_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">6,969<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 );">Internal Revenue Service (IRS) [Member] | Domestic Tax Authority [Member] | Tax Year 2022 [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_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="text"> <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 );">Internal Revenue Service (IRS) [Member] | Domestic Tax Authority [Member] | Tax Year 2023 [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_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">3<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 );">Internal Revenue Service (IRS) [Member] | Domestic Tax Authority [Member] | Tax Year 2024 [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_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">16<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 );">Internal Revenue Service (IRS) [Member] | Domestic Tax Authority [Member] | Tax Year 2025 [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_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">51<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 );">Internal Revenue Service (IRS) [Member] | Domestic Tax Authority [Member] | After Tax Year 2026 [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_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">2,807<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityNameAxis=dsgx_EmeaIncomeTaxAuthorityMember', window );">EMEA Income Tax Authority [Member] | Foreign Tax Authority [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_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">48,311<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 Income Tax Authority [Member] | Foreign Tax Authority [Member] | Tax Year 2022 [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_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="text"> <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 Income Tax Authority [Member] | Foreign Tax Authority [Member] | Tax Year 2023 [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_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">341<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 Income Tax Authority [Member] | Foreign Tax Authority [Member] | Tax Year 2024 [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_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">138<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 Income Tax Authority [Member] | Foreign Tax Authority [Member] | Tax Year 2025 [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_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="text"> <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 Income Tax Authority [Member] | Foreign Tax Authority [Member] | Tax Year 2026 [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_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="text"> <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 Income Tax Authority [Member] | Foreign Tax Authority [Member] | After Tax Year 2026 [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_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">47,832<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 Income Tax Authority [Member] | Foreign Tax Authority [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_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">2,836<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 Income Tax Authority [Member] | Foreign Tax Authority [Member] | Tax Year 2022 [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_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">285<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 Income Tax Authority [Member] | Foreign Tax Authority [Member] | Tax Year 2023 [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_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></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_IncomeTaxAuthorityNameAxis=dsgx_AsiaPacificIncomeTaxAuthorityMember', window );">Asia Pacific Income Tax Authority [Member] | Foreign Tax Authority [Member] | Tax Year 2024 [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_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 Income Tax Authority [Member] | Foreign Tax Authority [Member] | Tax Year 2025 [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_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="text"> <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 Income Tax Authority [Member] | Foreign Tax Authority [Member] | Tax Year 2026 [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_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="text"> <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 Income Tax Authority [Member] | Foreign Tax Authority [Member] | After Tax Year 2026 [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_us-gaap_OperatingLossCarryforwards', window );">Operating loss carryforwards</a></td>
<td class="nump">$ 2,434<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=84230637&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_TaxYear2025Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_TaxYear2025Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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_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=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_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>108
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623848245480">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 18 - 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, 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_UnrecognizedTaxBenefits', window );">Liability, beginning of year</a></td>
<td class="nump">$ 6,650<span></span>
</td>
<td class="nump">$ 7,824<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions', window );">Gross increases &#8211; current period</a></td>
<td class="nump">2,502<span></span>
</td>
<td class="nump">139<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_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations', window );">Lapsing due to statutes of limitations</a></td>
<td class="num">(759)<span></span>
</td>
<td class="num">(1,313)<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_UnrecognizedTaxBenefits', window );">Liability, end of year</a></td>
<td class="nump">$ 8,393<span></span>
</td>
<td class="nump">$ 6,650<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_UnrecognizedTaxBenefits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10B<br> -URI http://asc.fasb.org/extlink&amp;oid=120406818&amp;loc=SL37586934-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 15A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&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_UnrecognizedTaxBenefits</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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=84230637&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=84230637&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>109
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623849710952">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 19 - Contract Balances, Performance Obligations and Contract Costs 1 (Details Textual) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 2019</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_CapitalizedContractCostNet', window );">Capitalized Contract Cost, Net, Total</a></td>
<td class="nump">$ 12.9<span></span>
</td>
<td class="nump">$ 9.8<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CapitalizedContractCostAmortization', window );">Capitalized Contract Cost, Amortization</a></td>
<td class="nump">$ 3.3<span></span>
</td>
<td class="nump">$ 2.5<span></span>
</td>
<td class="nump">$ 1.8<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=68051541&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=68051541&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>110
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623848772504">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 19 - Contract Balances, Performance Obligations and Contract Costs 2 (Details Textual) - Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2021-02-01<br> $ in Millions</strong></div></th>
<th class="th">
<div>Jan. 31, 2021 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligation', window );">Revenue, Remaining Performance Obligation, Amount</a></td>
<td class="nump">$ 297.6<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_RevenueRemainingPerformanceObligationPercentage', window );">Revenue, Remaining Performance Obligation, Percentage</a></td>
<td class="nump">80.00%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1', window );">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period (Month)</a></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_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=121604090&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=121604090&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=121604090&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>num: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=2021-02-01">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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=2021-02-01</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>111
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623760580488">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 19 - 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, 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_ContractWithCustomerLiability', window );">Balance</a></td>
<td class="nump">$ 42,063<span></span>
</td>
<td class="nump">$ 35,091<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_ContractWithCustomerLiabilityRevenueRecognized', window );">Recognition of previously deferred revenue</a></td>
<td class="num">(37,843)<span></span>
</td>
<td class="num">(30,580)<span></span>
</td>
</tr>
<tr class="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">46,386<span></span>
</td>
<td class="nump">37,408<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_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination', window );">Increases from business combinations, net</a></td>
<td class="nump">39<span></span>
</td>
<td class="nump">551<span></span>
</td>
</tr>
<tr class="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="nump">646<span></span>
</td>
<td class="num">(407)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="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_ContractWithCustomerLiabilityCurrent', window );">Current</a></td>
<td class="nump">49,878<span></span>
</td>
<td class="nump">41,143<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_ContractWithCustomerLiabilityNoncurrent', window );">Long-term</a></td>
<td class="nump">1,413<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_ContractWithCustomerContractAssetBeforeAdoptionOfASC606', window );">Balance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">812<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_ContractWithCustomerAssetReclassifiedToReceivable', window );">Transfers to trade receivables from contract assets</a></td>
<td class="num">(563)<span></span>
</td>
<td class="num">(490)<span></span>
</td>
</tr>
<tr class="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_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">783<span></span>
</td>
<td class="nump">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_dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange', window );">Effect of movements in foreign exchange</a></td>
<td class="nump">26<span></span>
</td>
<td class="num">(6)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
</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_ContractWithCustomerContractAssetBeforeAdoptionOfASC606">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 amount of contract asset before the adoption of ASC 606.</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_ContractWithCustomerContractAssetBeforeAdoptionOfASC606</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_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=121604090&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=121556615&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=121556615&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=121604090&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=121556615&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=121604090&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=121556615&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=121556615&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=121556615&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=121604090&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=121604090&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_ContractWithCustomerLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 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 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=121556615&amp;loc=SL49130532-203044<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=121556615&amp;loc=SL49130531-203044<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&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_ContractWithCustomerLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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=121604090&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>112
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623966059944">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 20 - Other Charges (Details Textual) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jul. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 2019</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_RestructuringCharges', window );">Restructuring Charges, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,300<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">$ 20<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>
<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_us-gaap_RestructuringCharges', window );">Restructuring Charges, Total</a></td>
<td class="nump">$ 2,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="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_RestructuringAndRelatedCostExpectedCostRemaining1', window );">Restructuring and Related Cost, Expected Cost Remaining</a></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>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringAndRelatedCostExpectedCostRemaining1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 expected cost remaining for the specified restructuring cost.</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_RestructuringAndRelatedCostExpectedCostRemaining1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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://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 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 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 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=6394359&amp;loc=d3e17939-110869<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=121586364&amp;loc=d3e3602-108585<br><br>Reference 4: 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))<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>113
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623848227416">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 20 - Other Charges - Other Charges Included in Consolidated Statements of Operations (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, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 2019</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_BusinessCombinationAcquisitionRelatedCosts', window );">Acquisition-related costs</a></td>
<td class="nump">$ 1,981<span></span>
</td>
<td class="nump">$ 3,457<span></span>
</td>
<td class="nump">$ 3,187<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_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1', window );">Contingent consideration adjustments</a></td>
<td class="num">(1,946)<span></span>
</td>
<td class="nump">340<span></span>
</td>
<td class="nump">591<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_RestructuringCharges', window );">Restructuring plans</a></td>
<td class="nump">2,300<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">20<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherNonoperatingExpense', window );">Other Nonoperating Expense, Total</a></td>
<td class="nump">$ 2,335<span></span>
</td>
<td class="nump">$ 3,797<span></span>
</td>
<td class="nump">$ 3,798<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=116868678&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=121586364&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=120395209&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://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 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 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 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=6394359&amp;loc=d3e17939-110869<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=121586364&amp;loc=d3e3602-108585<br><br>Reference 4: 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))<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>114
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623844721928">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 20 - Other Charges - Restructuring Provision (Details)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th">
<div>Jan. 31, 2021 </div>
<div>USD ($)</div>
</th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringReserve', window );">Balance</a></td>
<td class="text"> <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_RestructuringReserveAccrualAdjustment1', window );">Accruals and adjustments</a></td>
<td class="nump">2,300<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_PaymentsForRestructuring', window );">Cash draw downs</a></td>
<td class="num">(2,240)<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_RestructuringReserveTranslationAdjustment', window );">Foreign exchange</a></td>
<td class="nump">10<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_RestructuringReserve', window );">Balance</a></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>
</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_RestructuringReserve', window );">Balance</a></td>
<td class="text"> <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_RestructuringReserveAccrualAdjustment1', window );">Accruals and adjustments</a></td>
<td class="nump">1,717<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_PaymentsForRestructuring', window );">Cash draw downs</a></td>
<td class="num">(1,657)<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_RestructuringReserveTranslationAdjustment', window );">Foreign exchange</a></td>
<td class="nump">10<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_RestructuringReserve', window );">Balance</a></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>
</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_RestructuringReserve', window );">Balance</a></td>
<td class="text"> <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_RestructuringReserveAccrualAdjustment1', window );">Accruals and adjustments</a></td>
<td class="nump">583<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_PaymentsForRestructuring', window );">Cash draw downs</a></td>
<td class="num">(583)<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_RestructuringReserveTranslationAdjustment', window );">Foreign exchange</a></td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringReserve', window );">Balance</a></td>
<td class="text"> <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=121586364&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://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))<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://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)<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_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://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_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>115
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623760473544">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 21 - 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, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 2019</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_IncreaseDecreaseInAccountsReceivable', window );">Trade accounts receivable</a></td>
<td class="nump">$ 143<span></span>
</td>
<td class="nump">$ 3,733<span></span>
</td>
<td class="num">$ (135)<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_IncreaseDecreaseInOtherReceivables', window );">Other accounts receivable</a></td>
<td class="num">(7,098)<span></span>
</td>
<td class="num">(2,547)<span></span>
</td>
<td class="num">(451)<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_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets', window );">Prepaid expenses and other</a></td>
<td class="num">(5,029)<span></span>
</td>
<td class="num">(5,942)<span></span>
</td>
<td class="num">(4,466)<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_IncreaseDecreaseInInventories', window );">Inventory</a></td>
<td class="nump">99<span></span>
</td>
<td class="num">(345)<span></span>
</td>
<td class="nump">74<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_IncreaseDecreaseInAccountsPayable', window );">Accounts payable</a></td>
<td class="num">(686)<span></span>
</td>
<td class="nump">1,768<span></span>
</td>
<td class="num">(1,065)<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_IncreaseDecreaseInAccruedLiabilities', window );">Accrued liabilities</a></td>
<td class="num">(999)<span></span>
</td>
<td class="nump">3,265<span></span>
</td>
<td class="nump">2,570<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_IncreaseDecreaseInIncomeTaxes', window );">Income taxes payable</a></td>
<td class="nump">3,835<span></span>
</td>
<td class="num">(1,550)<span></span>
</td>
<td class="num">(2,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_dsgx_IncreaseDecreaseInOperatingLeaseLiabilities', window );">Operating leases</a></td>
<td class="nump">283<span></span>
</td>
<td class="nump">546<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInDeferredRevenue', window );">Deferred revenue</a></td>
<td class="nump">5,877<span></span>
</td>
<td class="num">(4,184)<span></span>
</td>
<td class="nump">2,047<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " 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="num">$ (3,575)<span></span>
</td>
<td class="num">$ (5,256)<span></span>
</td>
<td class="num">$ (3,849)<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=121586364&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=121586364&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=121586364&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=121586364&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=121586364&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=121586364&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=121586364&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=121586364&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=121586364&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>116
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623932857032">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 22 - Segmented Information (Details Textual)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_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=120311839&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>117
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623853620312">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 22 - 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, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 2019</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_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Geographical Revenue</a></td>
<td class="nump">$ 348,664<span></span>
</td>
<td class="nump">$ 325,791<span></span>
</td>
<td class="nump">$ 275,171<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</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Geographical Revenue</a></td>
<td class="nump">211,232<span></span>
</td>
<td class="nump">202,814<span></span>
</td>
<td class="nump">165,115<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 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Geographical Revenue</a></td>
<td class="nump">94,163<span></span>
</td>
<td class="nump">82,596<span></span>
</td>
<td class="nump">80,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_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 " 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">29,388<span></span>
</td>
<td class="nump">27,304<span></span>
</td>
<td class="nump">18,167<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_StatementGeographicalAxis=srt_AsiaPacificMember', window );">Asia Pacific [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Geographical Revenue</a></td>
<td class="nump">$ 13,881<span></span>
</td>
<td class="nump">$ 13,077<span></span>
</td>
<td class="nump">$ 11,795<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=120311839&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=121604090&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=120311839&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=120311839&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=120311839&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=120311839&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=120311839&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=121604090&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=120311839&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=120311839&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>118
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623848765848">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 22 - 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, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 2019</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_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Revenues</a></td>
<td class="nump">$ 348,664<span></span>
</td>
<td class="nump">$ 325,791<span></span>
</td>
<td class="nump">$ 275,171<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 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Revenues</a></td>
<td class="nump">309,731<span></span>
</td>
<td class="nump">284,654<span></span>
</td>
<td class="nump">241,543<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 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Revenues</a></td>
<td class="nump">33,879<span></span>
</td>
<td class="nump">33,555<span></span>
</td>
<td class="nump">27,774<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 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Revenues</a></td>
<td class="nump">$ 5,054<span></span>
</td>
<td class="nump">$ 7,582<span></span>
</td>
<td class="nump">$ 5,854<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=120311839&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=121604090&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=120311839&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=120311839&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=120311839&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=120311839&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=120311839&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=121604090&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=120311839&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=120311839&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>119
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623839497288">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 22 - Segmented Information - Long-lived Assets by Geographical Location (Details) - USD ($)<br> $ in Thousands</strong></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_NoncurrentAssets', window );">Geograhical long-lived assets</a></td>
<td class="nump">$ 252,081<span></span>
</td>
<td class="nump">$ 270,687<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</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NoncurrentAssets', window );">Geograhical long-lived assets</a></td>
<td class="nump">92,442<span></span>
</td>
<td class="nump">114,980<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 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NoncurrentAssets', window );">Geograhical long-lived assets</a></td>
<td class="nump">39,769<span></span>
</td>
<td class="nump">31,299<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 " 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">107,472<span></span>
</td>
<td class="nump">111,264<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 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NoncurrentAssets', window );">Geograhical long-lived assets</a></td>
<td class="nump">$ 12,398<span></span>
</td>
<td class="nump">$ 13,144<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=120311839&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>120
<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.21.1</span><table class="report" border="0" cellspacing="2" id="idm140623851495624">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 23 - Subsequent Event (Details Textual) - 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. 26, 2021</div></th>
<th class="th"><div>Jan. 31, 2021</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Jan. 31, 2019</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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Payments to Acquire Businesses, Net of Cash Acquired, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 48,403<span></span>
</td>
<td class="nump">$ 292,053<span></span>
</td>
<td class="nump">$ 67,932<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 [Member] | VitaDex Solutions, LLC [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Payments to Acquire Businesses, Net of Cash Acquired, Total</a></td>
<td class="nump">$ 36,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_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=121586364&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_VitaDexSolutionsLLCMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_VitaDexSolutionsLLCMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>EXCEL
<SEQUENCE>121
<FILENAME>Financial_Report.xlsx
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 Financial_Report.xlsx
M4$L#!!0    ( $ATAU('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    " !(=(=2'&$[RN\    K @  $0   &1O8U!R;W!S+V-O<F4N>&ULS9)1
M2\,P$,>_BN2]O:2=#D+7%\4G!<&!XEM(;EM8TX3DI-VW-ZU;A^@'\#%W__SN
M=W"-#E+[B"_1!XQD,=V,KNN3U&'##D1! B1]0*=2F1-];NY\=(KR,^XA*'U4
M>X2*\SMP2,HH4C !B[ 06=L8+75$13Z>\48O^/ 9NQEF-&"'#GM*($H!K)TF
MAM/8-7 %3##"Z-)W <U"G*M_8N<.L'-R3'9)#<-0#O6<RSL(>']^>IW7+6R?
M2/4:\Z]D)9T";MAE\EM]_[!]9&W%*U'P5<'76[&2=2UOUQ^3ZP^_J[#SQN[L
M/S:^"+8-_+J+]@M02P,$%     @ 2'2'4IE<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[,&N LE5M[*WO@\C0'(-D/: ]%9 U@-"YVA769#UF2$K<J-;8GRT8_.;T)N
M=FJX\G]QB\9YN<-AL=;*:L$KAE"1%1-,E4"VGLZ2NPTSH+ &Y"43]IY\(+9V
M1S:GZ%)[ EKV:59=FO1*FN],34B6/) T3I,+\/7M\/@]G#K!@^IT4)T&ONE5
MU5*Z&>K4//0KX=8>71?N^-ES?TEHQSP+S/Z.G(K%=/HXG<\6.3V-)5T*3&;S
M+)D/@>^*SX;BL_\HWMU0BTQ57!W^I2"[5<&EP(L*Z&@ _>7_P<R!*TL$[!TT
MGGQT'*:[4)V!N@DSN=/H)CQL:_<&@?$!SK_7&L^&'_/A52O^ E!+ P04
M" !(=(=2CX:S#=\%  #)%@  &    'AL+W=O<FMS:&5E=',O<VAE970T+GAM
M;)6876_B.!2&_XJ%YJ*59DKL.'%2420@:8>5"A70SMRZQ$ T(6$3TW;WUZ_S
M40*V8W5O"DG?<_#CC_/:'KQG^9]BQQ@''_LD+>YZ.\X/M_U^L=ZQ/2UNL@-+
MQ7\V6;ZG7#SFVWYQR!F-JJ!]TD>6Y?;W-$Y[PT'U[BD?#K(C3^*4/>6@..[W
M-/]GS)+L_:X'>Y\O%O%VQ\L7_>'@0+=LR?CSX2D73_U3EBC>L[2(LQ3D;'/7
M&\'; )$RH%*\Q.R]./L.2I37+/M3/DRCNYY5MH@E;,W+%%1\O+$)2Y(RDVC'
MWTW2WNDWR\#S[Y_9[RMX ?-*"S;)DE]QQ'=W/:\'(K:AQX0OLO>?K %RRGSK
M+"FJO^"]T5H]L#X6/-LWP:(%^SBM/^E'TQ%G =#M"$!- )(#<$> W0387PW
M30"N>J9&J?HAH)P.!WGV#O)2+;*57ZK.K*(%?IR6X[[DN?AO+.+X<)*E19;$
M$>4L DLN/L2@\@)D&S _L)R6@U. '^!Y&8"K;]>@V-&<%2!.P6J7'0N:1L5W
M\.WB>=#GHF%E^OZZ:<2X;@3J: 1$X#%+^:X 81JQZ#)!7Q"=L- GUA@9,_Y%
MTQM@P^\ 60AJ&C3Y>KBE"0^^' Y] XU]&B2[RH<[\BW"EW#V'"YU/5M'NE5D
MN<C?AC;V7!</^F_GO!H9<H@/+V6!*D/$@:257;0?G]J/C>V?S)<K,+\')HXZ
M@W/VRY[O0TO"T*@<@F0*546P[V,]A'."<(P0#XOY<@D>1XN'Z4P'X"@_BAR/
M./) :&38LH@$&FADE@4)T3.X)P:WBK,[&,+?3^%L*0_ 12IR2D6,W;&DB:@#
M8KV+:I3_83Q.M[I>(0J'[1'/D3I%56'+]GRI3S2Y7(_8^B[Q3AR>>6VQ@M%\
MO:M0(O8FG/!0ED =C*<TP,&6ZTHP&I7M0%N"4568> 3I8?P3C&^>HRP5-3NI
M6&@D["(N>%G#WY@.Q]?T)W*)A*-181=Y$HY&)>9K!PZT6G>RC$!SOF,Y6 O3
MV8K9=C7+.!-%]5IK,9:Z9&Q;GFD:E4U\B3G0J[P.FC.OA4::T3[+>?QO9:JE
MP\8II^DV?DT8H$7!N-XZH3J?'-]2P'0R+*^T0"/#HJ[X'6BH14/F@:HW"^D6
MA!]B3UHPL2U899PF6B2D- **A>QX,I-6YYU-JP9*HQ.UU^ZH^+#U76@VWNEL
M,G\,P?UB_@CF3^%BM)K.9UK[:A)=> ZT?;DV:&0.0C)XH)%AB'%'J8.M#T.S
M$4]GJW 1"C-NC$!+HKKG#P@]A40CPQBZ,HE&AB#J6DJM&4.S&T]G+X+C,9RM
M0#U(6A351:'CRR :D2]7:ZW(Z8!HW1BZ7YE>X_!^O@@;#K :_=;OD)ID%U/,
MLEV%1Y5AS[(5(E5F^\[9ANN2J=T60&+<8K04GY.L*=O0NS9L.V#KU]!LV)-C
MGG?X,U1-U298F;D:@T:^4BA5E6OA+D-K#1J:'3I@&R;:'VF;KYHHQ ZRY?:K
M,H=@97Q5%8)^QT8>M8:,S(8\3=?9GH$5_?@L].!J+'8=FYA?&RH^4@T5>DB9
MNSH9%#M!B4TC\Y#=41U1:\_(;,^ST%1,FF#W8MI 2SZA:&1BC2H[#)T,HJ[]
M/6I]&"'S#I_FJ7#A @@_K@_KIM-T:X3(;(1C6L1K<"6.^5&6)#0_RZ_=C#7I
MR!F>=>,BN:]T*BRO1+VJ:R:W7HC,7AC$R;&\]/@?4%@'!64HG4J%TJHZF%I7
M1(YQ]'^%TX>?JS  HQ>Q67D(P?+G2/@]F#^OEJO1+)C.'L 5_[RH,=5CU)H8
M,IM8.S7JNR%]UZENXV';51:/1@9=V;(#C8RXGMU1G%'K7<A\ICV?$B88]2#J
M.<21?48G0YY\O@HT,D*(4JG[9W=\>R:.0^5=:0'6V3'E];W8Z>WI/G94W4)*
M[\?P-JAO5=LT]27OHSAEQ6D!$K81*:T;(MJ4U_>F]0//#M5-XFO&>;:OONX8
MC5A>"L3_-YDP^N:A_('3[?7P/U!+ P04    " !(=(=2-#Y80"T#  #!"
M&    'AL+W=O<FMS:&5E=',O<VAE970U+GAM;(U6T7*;.A#]E1V:N1//M $$
MACBU/=/8[C2=29J)V]YG!=:&6Y!<2;:3O^\*"'5L[)L7D,0YJSV[6BW#K52_
M=(9HX*DLA!XYF3&K*]?5288EUQ=RA8*^+*0JN:&I6KIZI9"G%:DL7.9YD5OR
M7#CC8;5VK\9#N39%+O!>@5Z7)5?/UUC([<CQG9>%AWR9&;O@CH<KOL0YFA^K
M>T4SM[62YB4*G4L!"A<CYY-_-8TMO@+\S'&K=\9@E3Q*^<M.;M*1XUF'L,#$
M6 N<7AN<8%%80^3&[\:FTVYIB;OC%^N?*^VDY9%KG,CBWSPUV<BY="#%!5\7
MYD%NOV"CIV_M);+0U1.V#=9S(%EK(\N&3!Z4N:C?_*F)PP[!CXX06$-@^X3P
M""%H",%;"6%#"*O(U%*J.$RYX>.ADEM0%DW6[* *9L4F^;FP:9\;15]SXIGQ
M1 HMBSSE!E.8&WI13HT&N8")+.DD93;%&X0;D<@2X0/\F$_A_*P'9Y +^)[)
MM>8BU4/7D#?6IILT.U_7.[,C._L,;J4PF8:92#%];< E&:T6]J+EFIVT^)6+
M"PC\]\ \YG<X-'D[W>N@3]],]P<GU 1M9H+*7GC$WAW5?%X%O2NV-3>JN+:T
M-^,^\SUR>[,K^! 51(-!_!HU[4#Y+/Z+>N5^V+H?5K3@B/O?3(8*DE=GJ)8#
MYX74NG=U(D;]=I/^R1A1Z5-A"RH4I5 DSV 4%[K@]962_D?U8X_S>Q 43#K2
MC0.&/\&YPD1N4#WW )_H$M5H 6=LX %=ID#>PS-R!6@/)U!RUW0KMJ<+SO=6
M//CGW27S_8]4&W[ >A_W*/Y@!Q"&O5Y74FNQ_9U$L##N]_>2>HCZ$(?!7DX[
M0(-!..C.:=2&.SH9[N_2\ +D_V6V2UKT)FF'J YI':#CTN)66GQ2VN3;[?W#
M[,OL;G[S<P8W=S2?=>F(#VHECBX/=!RB@HCUPSTAARA&1^=R3XB[<[F7J)95
MD]04_[4P]=W8KK9]^%/5?O;6KZD_U^WTKYFZN=]RM<R%A@(79-*[B"FXJFZ8
M]<3(5=5"'J6AAE0-,_K'0&4!]'TAI7F9V W:OY;Q'U!+ P04    " !(=(=2
M70(,.60"  "1!0  &    'AL+W=O<FMS:&5E=',O<VAE970V+GAM;(U4VTX;
M,1#]E=&*!Y" O05:4+(225J52D@1*>VSV9UD77Q);>?V]QU[-]M $\3+^K)S
MCN?XC*>_UN;%UH@.-E(H.XAJYQ:W<6S+&B6SEWJ!BO[,M)',T=+,8[LPR*H
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
M;HGJ-65UH_B^?$MVS97B>7FYHR2EPACHW[=<ST]]8UZ\-2^+%_\ 4$L#!!0
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
ME_/VL*ASTYY=_<$:6/L*E7P%+H//"<2\:8^#VALMM_: 9"FUEI6]W' &#=P
MX/\K"3)E?V-><#B4N_D74$L#!!0    ( $ATAU+IGSES]@,  %$(   8
M>&PO=V]R:W-H965T<R]S:&5E=#DN>&UL?59=;QLW$/PK"Q4H$D#6EYW$B&0!
MD=,T*9#&B-+VH>C#BK?2$>:15Y)G6?WU'?).9SF(_6*1O-W9G=GETHN]\[>A
M%(ET7QD;K@9EC/7;\3BH4BH.(U>+Q9>M\Q5';/UN'&HO7&2GRHQGD\GK<<7:
M#I:+?';CEPO71*.MW'@*356Q/ZS$N/W58#HX'GS5NS*F@_%R4?-.UA+_J&\\
M=N,>I="5V*"=)2_;J\&[Z=O51;+/!G]JV8>3-24F&^=NT^93<368I(3$B(H)
M@?%S)]=B3 )"&O]VF(,^9'(\71_1/V3NX++A(-?._*6+6%X-+@=4R)8;$[^Z
M_4?I^+Q*>,J9D/_2OK5]/1F0:D)T5>>,#"IMVU^^[W0X<;A\RF'6.<QRWFV@
MG.5[CKQ<>+<GGZR!EA:9:O9&<MJFHJRCQU<-O[C\W46A*9W1>PG*ZSI+Y;84
M2Z%5$V =PF(<$2G9CU6'NFI19T^@3F?TV=E8!OK%%E(\!A@CQ3[/V3'/U>Q9
MQ-_8CNA\.J399#9]!N^\YWV>\<Z?X1TH.OJ@+5NEV= Z<A3T6PS/X%_T^!<9
M_^()_*-VCW1E6]"*@PY)X1LO <$X?_G[F]Q'6AFG;O_YD=S/!^N*^ TU2^'8
M)V[K0P"=0+]ZU]3TR:H1O?CYI\O9;#+OC?)^.A]2]^':537;P_?'KO'=$3E_
M/-Q+=_:20(BI]NY.%^(3MYUQ&RAJW$Z'J!6$%E5:A_V!@C--XAQ&=)W[6WR@
M)@@A"E6N: S[(:RV<<]>SCB<\5D0?Z>5] 36S.L^>E*U0.\_(*>Z@G44X&"*
M 1*KZ%G=9N-*.#1><'D-)H(_8+@$!%<2YE0;MD-B@TJ@&[*YW(L"%H52U[D]
MYN0Y87-3Z)A-:CXD?!MJY[N*:GOG=(9DI5(C)#NV; [_R5$?N!22<Y^G'(2]
M*EL\\6G>=@:1O=YN6YY-/)!BHZ!2ICJGK3;238HV2$"Z7L.N<*K)"1/ 2%<I
MN=!1RNMYWB@4W0@(6EA#-G0G;K\_J1Y*FRB@J38'</4XU#7BVQUHHO2HV YZ
M8!89WCB( UFIPES49RCHHT9 L*JQR&Y$7U#OV@,*,# 3<VRAD%M!]<VQU[&D
MK9%[O=$F$4/0&O4J<97@FXP?2B\Z)Y]N&UZ:37_YAFV!.#\&2 F*0.5:8I/R
M0Z4L6G"3+F>?67JE(!T221T.Q-R&B/A=J8^='^@%:_0NQ.+VLD??H.<2N?!R
M>*+"L9]//+55!OV4T$OM?S@RQR=C'L+L\F.6)&UL;"=^?]J_E^_:9^+!O'UL
M/Z-B&FH9V<)U,GKS:D"^?<#:371U?C0V+J(*>5GBS1>?#/!]ZS!SNDT*T/\7
ML?P?4$L#!!0    ( $ATAU)V]C_'KAX  ,Q?   9    >&PO=V]R:W-H965T
M<R]S:&5E=#$P+GAM;.U<:8_;2)+]*X2W=\8-J.2Z['%/'T#YZ%D/NL>&JSR]
MP&(_4&1*RC9%:IADJ=2_?N-%1!ZD*)5[%@LL%ONA#E%D9F1D'"^.Y'>[IOWL
MUL9TV<.FJMWW3]9=M_WSLV>N6)M-[N;-UM3TS;)I-WE'']O5,[=M35[R0YOJ
MV>7Y^8MGF]S63W[XCJ]]:'_XKNF[RM;F0YNY?K/)V_TK4S6[[Y]<//$7/MK5
MNL.%9S]\M\U7YM9TG[8?6OKT+(Q2VHVIG6WJK#7+[Y_<7/SYU37NYQO^;LW.
M)?]G6,FB:3[CP[OR^R?G(,A4IN@P0DY_[LUK4U48B,CXAX[Y)$R)!]/__>@_
M\MII+8O<F==-]8LMN_7W3UX^R4JSS/NJ^]CL_LWH>IYCO**I'/_.=G+O]?,G
M6=&[KMGHPT3!QM;R-W]0/B0/O#P_\L"E/G#)=,M$3.6;O,M_^*YM=EF+NVDT
M_,-+Y:>).%MC4VZ[EKZU]%SWP]^:SF27V5GV*G?69<TR^] :9^HN!].^>];1
M'+CS6:'CO9+Q+H^,=W&9_=S4W=IE;^O2E,,!GA%Q@<)+3^&KRY,C_C6OY]G5
MQ2R[/+^\.#'>55CQ%8]W=6+%+NN:[$=;YW5A\RJ[I=4:DK3.G1C_.HQ_S>-?
M'QG_UJYJN[1%7G?935$T?=W9>I5]:"I;6)KY/^[,0Y>]JIKB\W].\??TZ+I?
M=VM# ETTFVU>[S%\T=2.9BAI(66V#"MS8659WIIL*WM+M]@Z^U1;_,>+=]G3
M/_S+R\O+\V\_W?(_%]]^G95-5>4M/5F7_NDM_>6',7E;TBR&!+9;9RM3FS:O
MJCV^,5L,G,?%;UM+]&PKFH>>[8CX3[=AQK_<W'P(<V(N?-_VN!F?6K/J*Y9&
M%D]\^3JO\]+F=79KBKZU'=AZ4Y)V6->U>=<HS3I/<A.NOGTHUGF]HE&:S<8Z
MMBZ>E-NWKP,E9/!X!%DU$X#Y'V7TG#>';%%5XF9:?R_R9AZVIK4&+,NS5=4L
MZ#':OM)L+.V\J7A$N@^3BH4-ZWW_]W=OSK*+;TCS]UG==-G[OJ7)74%#[$W>
MTD2;#48F%M79CV;1]F1ALPLB*R/]X0]7HT^B4/);%SW+E _)M?$3Y_)[X@E_
M+;ET>620R^S4E_-HC"*WP7XP]G%!)U&K^M(PYR9OH''?&.)=VZE(-,3-W9JD
M?7_6[&H:U_4+9TG":+MH/W\QI K,=G($9.9K,LQM2^S>9R1NM:LB=21NHC49
MT:_2$ZQI?,SOJ^CO/+MQSG1"2V7SA:U$7.DVD)92PXKH9V55)(D)L]+7'8]L
MO)"3X!KHG%DNR0_ZKTGT6'7%[X.7\^RCN3<LJJ "LEJ[QZ?K'=2[S"TI_F!.
MJ$'"F[S\E7R9L)\X0BX3SRW;9D/T$*NV;4/"*].1W>@WO9\O:XA@%G!BY1IH
MX!X+HL\F>UHUSI'-H.<R)UIJ^,ZFIIG /K>F$6EG2].Z/V;F'[WMB-WO:^9I
M1R8:HE%9NEX&#<^A^KS-!'U$\6?,M<'(*94G2&2]QEI9L8G]1&5GBQXB<C -
MA*8U14,.Y#=9?#>6^*$8AR?5ZBS[FL$.+2J5-9,7:R],]*@(%\T5C3;F(8^4
M/D>S[]:6'J3O]CJ3T5W-"[''M$C<SJ3J@RRWS ]:;CTU,)A7"QU[WG!:X+UI
M$^LW>D"%MHLSJ\@2TC =+$<^K3^EJ1OR"EZ2ED/M]=K4FK.-R5W?>OD^3L(_
MH58W536>>)],B:W,5@2>E7H2:"5+S1A33LM4@9K#!O%D;/<-0-:$4?_J?/[R
MP'*S8;X@@TO?OAA]2[XE^?8Z^^0,2X[K[(;QP0=V@ZRUTT87VX@@ ;O*D !^
MG59*ND4:3YZK)I#/RR46;_+/)AF<$8:CP& K<L6:D@MOL=9\ R3AK_.>;9NV
M.Z(CT_"G+H>(J0:2*LF'$L]I(QRVJELW_8HEWITB#Q0@%"CA;>/"_NBR!3V4
M?:Z;767*%7-0]KS+8%T[-T,8TA-E8@1=<.AO3T[68ZX=F9845 &@$(+;.#)F
MI*:P@A7$=@"5MGU+(NO@B"R A\*B96[;[#ZO>J81XN55J.#]8L8N8-UAE8EK
M"Z@1-"_10EH-$;;L84'OQ5V1_I!^V$5E4ITDZT[F ]H.UT(3;,&N&3&!74X
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
M-IS>MGEH.DXJ]RGRES@];)G(KD+];(.6O^W1P5W,8>9UTL?B!2[M_9(D$S
MVMK"ZJ8''N+(@[PJ+M[>?ICCES1>?,F8G."*LAG#&VYL&WD=)9<K=IS@3LJ+
M'KAKVK4XE+HE>Q H%>++5 )KVJZ-11_A,.G'.]O$+V-KP!V@7R O( N7.D<B
MNAU:V=^43N;,[V+(_(AQ1KJ/P[6]%NFU0\8'HX'DU&"A89-$A)2'(>O&=NHY
M5@"4M0*AO.^0LY:Z_3OTG9;6(TRI6*CAR[;:CS\;;D [X6+\K9$-F_Q7!&[$
MQE4CAM@_-^C<6^#,RSS[B7:RIJE#ARTWLW@9J^1;N4HV8(O%,3C,R%UPSZ?/
M5TCTT-H0MM-V; T;ES#*BM%*2$=&=^9E+430'#6C!\$/[W/BD>(V] 2CX\UR
M(D)5*2+!4H4]'[J%=G+O/>YN;"U@&/%XR. %$9*6X'M;FC)UW9+EPV;QS)YR
M4E]O^V['O@XIH80+$C4C:!LSEW,HR1HX?(%1:WIDIS]SNP[7Y5QB//SCLP')
MDAXEB2U:*Q&.NN+$CJ& :C1MFG1?\[Z.:4N'<MH< 0!>LR)RC_9^"\Q$NJ';
M%%+=T$WMC#B^+4PP61;V9\-,[H@C"[.R=9VT7Y2AP,#"%-VEA-O!]7H &AQ>
MTDD,3KACZR@'\N/""ICF#0X;X6ZF>6#L@S#U+@\ +.\T$ITCA;F4S<01("]
M?\@WVV^S]^Q:!W>,'3'9=9Y,XV/N:)]QH"=1F=]V[+GT@(411B6#.++T2JH2
MWK&]&DR;H+:D+,QAS&.@2V)_@@0JI,/X4:'5 /\NS+X1@NA^;1F$XO@C*D'Y
MCK/I8#=YSUCG18A)I"@P=[I])^23A9&?$W<UF$:7C%P+$FK;27HBJDYI6=H'
M3I-"9IF(V:,4#(0,"5;$RF(1PF0)11]'3:X)C^F:W2SZUAD?-A*%*'F'AEC?
M&#*AK:L6P9@R+F:EYBJ[P73[T($@1[F3Q*^Z*J1;TGRZ\&5V?!MF8JE'!ME#
M><1['D*W4H91"P+#X4+?/S&F,+X)5X$"SC,=ZVFD!\G2A74$B)TB]@ O)X S
M3'YB=MXD79D^2C\*MX.2/0()-51S:X_PCJ5\,Q(CU[L8KJ >^\6]I0J268@"
M?O,@]HOQJ_>-** :4XZ'2W+P/L/B,URR2CSDU.PH5!\G;*7L=2]TJ9SX6/60
MV9KH&'7&T*.<]>:S J&'Z@BKAOT3HA7,>6XNPP,IY&?1K/;BTK=ZO#!M'TNM
MA5^7;S+0!$7 <02$N,/_(!";<<2%QE-Z5*NZ&;(J[?3^H96B<R?R$[XAB-4M
MUY.12'7GU1X+GMS&(=O3.)%S,$C"+G")-?)8BW)HHSCHUGK-.7%XL@5OT(F(
M<%ABJ),*C5:4@C^21#OWO73J/$^,2T%2DG[1IATOH*%UPO<L8M%)[XZ$J5ZZ
M<CFBJDE\; 7AZ0V2H]K]EG:JZ Q%OK4=>H<TU^\&EY288?F<#8OK!IF ).$>
M$Q%#S!1X-6WEPG$MY:QX$9<V%_DX1Y!AFL0(W"59-CORR=H'%RIG'B/$P?R=
MHVXHX4KB5DRW0QIPR5C'/G!)^O6PZ>[@Z!;/+9EA=1_:JE?:T 2?QC>)PL*B
MOO%'!6(\)VW&@P SYIX3D.P/78Z.E"A;&U]8G;2L3]W7L>H_;$=LY""Q'4)W
MA'SJKN&^4Y0X/UB$[R>IK+D?0N&!EYY/,K<\,IB>HVI2S3U;[,^"/"C"Z-+*
M%'L9>99-A"+JCR3[>5NL#]JU1 ?N&BV8^%*F[T.Z/7+F1-J\Y.OLO5KZ7XQP
MD/65O]$BDMP,%4'UTQ 0;_;&:.V.N\V:)8D^YQ7\MRXY^>-#%P7(R)CX.;%[
MOL>)I:[9;!IMZ%5DKF$WBB=US/8+L#3H2?/*S)TK)!6?35)VFA@T=%?Y^)JG
MT"S.X2"CIM10L4&5+YXTF9Q*??;=[;_'F(ZLPX;@JQ70@H*EB=V)279+B7KK
MN9WN2(HM[[GA7D+L)<?N$$/M?N$+=P=M869J4)DQ:94&\ML(F6EEAR<<6ET]
M@U]SG5;Y,'6T=GBR=@ALAF55,MFM77!G>ZB#':YCBGR+(R]5H0>(XW:]0FO\
MV6VQ;N")?B:_%,I!9QZ <)<Q\=RO]KX!@/%UH4!NTO&;W#&2 "8MZD!H]KU;
MRW&+LR4V:%#,')U__$O(OV%L/1WA.V 7B"#WUE2E&[9B3'G L'UIM5O9=G#6
MED.QH1#>I6/H<])5.=K$M#M;IP)/O XW"?P>L>5#8O8E4_ 1I^HL3WD+=>+7
M:@RM5#[P%N(?PD.L@]PAS 8,=L;UN33P:ENT@A.ETALQ:80GSV,UN^*K3BIA
MHP-D<9[XKH\/MY_<X,T;DW3%^S\F]Q,OZ).JV< YY*E6(W+C&S%:6F).5"1M
M%!2HAU?(X#4?;=50<+3Q )VQ-+F>_S6RCU7_#\N_,.^HS'^,FQ!Z6\7*:F,A
M\?_C(_P?9LT>]Q<>A<)+/.(9F+W^4)4:7RE/''/YWD*']",6EX*,@(JBNF4?
MH#G((2R:O&4A#%Z?<%TCKZ.)$&BL<S&7+5[WKSW9]LN7Z%$\OYZ)(-= K<_/
M_Y7/5I[=FJY##FE2^[^0''2FGCD=Z(1%&%/W,[']\HJ)^Y,2ERC<U3EQJ#";
MV-K\:J(36T[2)#7W</J8)DB.$9X_G^$7Q>>6C,S.A*(!'W0_<8"?T^R]SWE(
MK_/HA/D8\O/SL40P[HG&ZG<&W=PNGLWMQ@>Y=YRTP,I(^</1F(10KL^L.6(G
MRN)Y8 ZF^L6OH82_)*9MN#7N1DXR(("89:4<GP:%Z2L<1#I]9@4A".0%?T.
M;!ZDB2*>PXYI#7XY63ARB]C8<TG?6)#IN06V1LAK)@#EL,40F;BDT"EO=+$>
MAZ<N)N[U-=IQZ1>G4/-L9>]-G6X"P_8(Z#1XC$U99 G.TCT;G)].X.SAOOJS
MGAS&IVD1(+P3X^ZSIT#ZR6EPS9M^K<68!4>V>']&?&F B(+T>1\CB9<J'3"'
MPBYI)3[6,:"%J^LX,1?SHN2=L0?M_N U#*' S3D)27#ZET5Q43.7[J%:7KL7
M-E&.#QEMD3[%<#W_QL6K25F5_.\R9MBTETG#%']2.S0"-3[1$G;>%U=133U)
MRR,Z(\S4^;RS2%]_PMP\QL'3HV.5LT'Q>.;!OT\)C-ZC\^G$*P(2&9M^38&W
M87)$O]97#VK":O)(C!@DWY\8H=!QZ=1>73Y8)35M>0O((WQPFCP,,B8O1*1)
MG3&?-;W"=?B!V*4GUI><7^$[!RT'K*E\LN2X^9YGKP<"YLS)ES$\RFFN+L9]
M]6([)5^A;V^O0SZZEM*6G)AXE[Y*0,_[<SM>:,33QEH^!1=?2A&%<]2EG;Z;
M(($R\4T6AUX1949MTJ> N&EA3GS2&03[]!H#1!IGP;V>\34<!P-*YX]M8_+'
MZ]X7OTQ'NEGD7!B4*),]E#XRO*@#&6HY3!.'UJY/O+<H5#>GES3 JA(3F#J7
MR!YR(>\7NYD2C$'O(OMQ]!Y&Z)=P>OI(O<<3Z+OA3FDTJMK/AI$2.6:?LT++
M7FJ-CPDS'W^5J :G:I:VE=-F9)30/5WZHV9\M#QO:WX-P=;HJR'X37@%^L/'
M7PP3" LP4,NT\651N(PE[OC=I-AH#4OJGO$AUZX'F:"^XPH MP%&<Q*@MZUZ
M+DNFY*0C_"ZJR%)Z$_=/$<B8$W@PNJ'AS4G/E9SG@)JD(Y!5"*?9T6N-Y<EA
M^728=5[*HWRBM)QBS!VWJ+'$[C6N5,-@G;P0AMLZ^9R'!$I^*DUJG'CQ#M*J
MA:#5$#ND;]9LZJ;7?G2' A.'!^<7U_Q6K^OL_)M9]N+\A7_7(OU+/\]Q[?D3
M_?0B1@P7S_DQBBN&1[4N7F9/Y0 D;A<AYH\06QJ*6$"H3:D/O4B?N (,B,E3
MRKTO9J=J1I]"T3CV<6_A[%#"2M<]:-_R5:D(3T.L6<2W?"KZ10X><#RD@#F<
MQ=%/)@Y4 KMSMV/9A&,/LHP7>#W:\^RKZ_EE]M7%_"+[ZFK^XH!97.GS!TSI
MP@N^_"+#/W^Z/O<?_*;HQ_#W=VQ'W(HYK C1=3Y-3;B8D'-^2='=]:7_D)#S
MDK_0"W/Z_QP7SN=\^YB\EP?D?</D42R!VSV)]!&\Y6%NV'9H$U\?Q(1NG_EF
M;SSZU07>13<>7*@0_ZRQ>L)BBHRO+CTOKY(U?8/K84FXQ_^,%_3->$%$^E,Y
M#'RW'AQ.^1TOHD B[?]?1/%_\T44J51X(PUYAG =2!($%U]X =;W,(J>XW>&
MI-/5\W/_(9%A? Q_?X?8!AV\F/MY;_I5+Z;CI9H4#(-IQ4#A<VH1Z&/X^]^8
M.3@S]:8G?5F81^9@);ZX##84'P8*?G$9_HY(1')C1.*%D)@8J$LF<>H=X,^2
M-ZR38*[X/?((Y(AT>=EZN)KY5]7?R!O:X^WRGON?\W:%COC*+.G1\_F?R ^W
M\NYX^= U6WY?^Z+I2 OXW[4A 6YQ WV_; BSZ =,$%[@_\-_ 5!+ P04
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
MUHL@#Z#$BG7"/JG]>QSRN7)XA1+&C[#O?6=7 12=L:H9@HE!PV4_L\-0AY.
M/#H3D P!B>?=7^19WC/+EG.M]J"=-Z&YA4_51Q,Y+EU3-E;3*:<XN_RL+$(<
MPQNX+0K=80F?.-MRP2U',P\M7>$<PV* 6_5PR1FX.(%')6UMX)TLL?P?("1N
M(\'D2'"57$3\R.04TG@"293$%_#2,>'4XZ47$C9@%3QPR63!F8"-91;IH5ES
M 3\;\3./GYW!IS*JCJ!@S5[85B P6;Y66[CGIA#*=!KAYU<\6%@)53S_>JWF
MEV\\MI JU9&N?+%.UZYP;HA&&H5J2-2&];H@?EN46'$BG62369:2]V06IZ-_
MJU6%QNF0JE4AD8\G<9[3&,41?+$U:I)7[RM.4HS3293E;DJN4DCS27[]%M*,
MIMF%*"X+T94XGN'!D:4#C8(:5;KFV9KK5U]7>"*%!O7."]Z [TFOBG%W_%-N
M>RG]<^\_I$>F=UP:$%A1:#2])@GK7N2]857KA;55EF3JES7]BZB= YU7BCHS
M&.Z"\:==_@502P,$%     @ 2'2'4LZ3/<%+ @  $ 4  !D   !X;"]W;W)K
M<VAE971S+W-H965T,C N>&UL?91+;]LP#(#_"F'T,J"U%2?9NB()T+0KMF'M
MBG:/P["#8C.Q4%G*)+K)_OTHV?&RKLW!>E#D)Y(F-=E8]^ K1()MK8V?)A71
M^BS+?%%A+7UJUVCX9&E=+8FW;I7YM4-91J-:9[D0K[-:*I/,)E%VZV83VY!6
M!F\=^*:NI?L]1VTWTV20[ 1W:E51$&2SR5JN\![IZ_K6\2[K*:6JT7AE#3A<
M3I/SP=E\%/2CPC>%&[^WAA#)PMJ'L/E03A,1'$*-!06"Y.D1+U#K &(W?G7,
MI+\R&.ZO=_2K&#O'LI >+ZS^KDJJILEI B4N9:/ISF[>8Q?/./ *JWT<8=/J
M#D4"1>/)UITQ>U KT\YRV^5AS^#T)8.\,\BCW^U%T<M+27(V<78#+F@S+2QB
MJ-&:G5,F_)1[<GRJV(YF-Y80!CF<P"=K5B>$KH9+7- D(Z8'G:SH2/.6E+]
M8LBU-51Y>&=*+/\%9.Q6[UN^\VV>'R1^E":%X> 8<I$/#O"&?:S#R!L>B-4#
M6;A21II"20WW) FYQL@?X(]Z_BCR1R_P0][@4OE"6]\XA!]?<$LPU[9X^/E<
M/@_3=G_FLP%.1,,= _DXY&+P]AB.AF.1"C@:BS MN;#!V';NE44^2EGD/(%@
M4_X$C 3<V%YEE]L=[JD\A7,/DOZ3\_TBS=OAR9EX=<R>T'/9S/:JM$:WBKWH
MH;"-H;9@>VG?[N=ME?]5;]^*:^E6RGC0N&13D;X9)^#:_FLW9->QYA>6N(/B
MLN(G"UU0X/.EY>QVFW!!_PC._@!02P,$%     @ 2'2'4K^4$9+? P  Y0@
M !D   !X;"]W;W)K<VAE971S+W-H965T,C$N>&ULK5;;;N,V$/V5@8 "":"U
M9$FVY< VL$Z[:!?))DBR#8JB#[0TMHA0HI:D8N?O.R0=U;FY0-$'T[S,')ZY
M4K.M5 ^Z0C2PJT6CYT%E3'L61;JHL&9Z(%MLZ&0M5<T,+=4FTJU"5CJE6D1)
M'(^CFO$F6,S<WK5:S&1G!&_P6H'NZIJIIR4*N9T'P^!YXX9O*F,WHL6L91N\
M1?.]O5:TBGJ4DM?8:"X;4+B>!Y^'9\O,RCN!WSEN]<$<K"4K*1_LXK=R'L26
M$ HLC$5@]/>(YRB$!2(:/_:807^E53R</Z-_<;:3+2NF\5R*>UZ::A[D 92X
M9ITP-W+[*^[M&5F\0@KM1MAZV92$BTX;6>^5B4'-&__/=GL_'"CD\0<*R5XA
M<;S]18[ES\RPQ4S)+2@K36AVXDQUVD2.-S8HMT;1*2<]L_@F#<(PA4]P@62<
MGD6&4.U95.P1EAXA^0!AF,"E;$REX9>FQ/(E0$1T>D[),Z=E<A3Q*VL&D Y#
M2.)D> 0O[6U,'5YZQ$8-1L(7WK"FX$S K6$&*;>,/H*?]?B9P\\^P+] K1%#
MN&I1,<.;S=Z7\.<=[@PLA2P>_GK/L4=A;3F>Z985. ^HWC2J1PSZ>-TC5.P1
M0?9W"G\GU2FL.BY*VM,A/&+%"T'[K"FAD'7;&52 /SK>6O,'<-6I9U4'J-"6
ML@4DP5J#7$/76N?E,(*["AV(;*SK[-FK^P%WU"[H?XL*@5DZ@NI>G\$?R)3/
M$*#X=M0 ^A"_WH@//.E1"ZD-9.%H&M,XC1.XK:0RGRS#0XD1G>3C,=Q)0S%^
M3<V+A/$TH7$RSN&V:UOALH"D"Z8K6!-7X(WO=;[M"$J4TMK_QM-;,N]_L-!=
M3.W2WDUH2M9OK^)-(3H+S!NH::M3CK8-@+=-<+;B@AM.PEF8IT,:AZ,8OE%;
MO+GZ3CPUVH"M# 77X^"NJ%BS09<Q'D6N!-\XPS4D89I.8!QFZ?2EH_ZK>_[=
M)_>NA1(<Y:&B%^$@%ST_%^^3)_*S/H5TD$,V2-]JE5P7LB/O$!^$DY].(1F,
MZ)?#)3.=\DYZ)W4/??@J?>V4-%Z;X&.NWPGZFU9 XHG-X"RSTQ32,,MC.Z5U
M.,ZG=CJ"83BAD:9CF(Z<Y,05KJF(#UO;TLW(43Z_/>N6/;D^1DTAS*D7VV9T
M!MP5NHTSZ2#E_<DDF\+I"\W#:)-R/$[AO%/*YA4E#]7'A6PVOL;R,)^.X+U6
M&1T\/36JC7M@-;@ ^%>HW^W?\,_^Z?I'W'\ 7#*UX<1%X)I4X\%D%(#RCZI?
M&-FZAVPE#3V+;EK1=P@J*T#G:TG-<;^P%_1?-HN_ 5!+ P04    " !(=(=2
MH*%<+7<%  "?#   &0   'AL+W=O<FMS:&5E=',O<VAE970R,BYX;6R-5]MR
MTT@0_94I%X_&MSB!HI)4D0"[[!:0(NSRL+4/+:EES6:D$3,C&__]GIZ19">0
M% ]@7?IRSNF+)N<[Z^Y\Q1S4]]HT_F)2A="^FL]]7G%-?F9;;O"FM*ZF@%NW
MF?O6,171J3;SU6)Q-J])-Y/+\_CLQEV>VRX8W?"-4[ZK:W+[*S9V=S%93H8'
MG_6F"O)@?GG>TH9O.?S5WCC<S<<HA:ZY\=HVRG%Y,7F]?'6U%OMH\+?FG3^Z
M5L(DL_9.;MX7%Y.% &+#>9 (A)\M7[,Q$@@POO4Q)V-*<3R^'J*_B]S!)2//
MU]9\U46H+B8O)ZK@DCH3/MO=[]SS.95XN34^_J]VR?9T/5%YYX.M>V<@J'63
M?NE[K\.1P\O%(PZKWF$5<:=$$>4;"G1Y[NQ..;%&-+F(5*,WP.E&BG(;'-YJ
M^(7+CS:P6J[5<W5MZUH'Z!W\%#=-T,V&FURS5]04ZK>.'#6!V9_/ Q*+^SSO
MDURE)*M'DBQ7Z@,"5EZ];0HN[@>8 _$(>S7 OEH]&?$/:F;J9#E5J\5J^42\
MDU&&DQCOY D9O I6O=,-@309=1LH<)3CB?CK,?XZQE\_$O](W*CF?7W?:)\;
MZSO'ZI\O_#VH*V/SNW]_)O33:89J'J=[[=&E/G<ZXT+I1D6;E6IL4(TVZMER
M=JH@)\J['Q6=_? $_Z_.IJ>KT_&WL0]8?&5%8."[[#^,G(A):DM.<]@K6RH;
M*G8J-Z3KI('O-."%B@+\M&=5.ENK@)$7W_@+N/!2UA4H"]#DMG,PE&@=IK'S
MX._]3'V!46X;S]\Z@ $66, 1IIC;P,Y'9)$R_MTX6W1 ^)6<M+1@?Y\2-3+H
MYCA-RXYD?6 F=JQ:9[>ZX)@]#:?$WNE0R:L8='<(ZMB0Z!/I(#IBQ2T*A .%
MBEP!#YXJ;\L@5TD:=EL-'F!F58$^C-DKVAY(7/7D ;;.H$[:<1O'J6>%D6/?
M2B7Z7)1_Z[37D8T\N_[T^>U4_8D:8G='C9#YMM+M%T?YW51UK0!_=K*<G4'&
MO0H[W*UG+W[2+8?E\*B20[$B$R!$+^CF88\<X8]](6G79XLIH@8L;I#I$!12
M0TIX:&R3NM&ESA-]FQF]2>62;ARJ]< LDD?2O93&YX@E/.^7E#;0Q(>A7>&@
M'T%0.ID P0RT2)9!J$J[8BS4I]CW#Z'>K]2O]-Z19J*8[?P/<@V$,9%P-4-2
M:<8X(YZ/'ZFP;P''F'T_?Y@V#%'3?R]35W<NK_#1ZR>63)HM\I[E,^$Y[UP*
M9LN210I<R63NGV=HHF@26UDB!_25>%&!#YGVP?55*Q77K;%[AGI 7FHP,22T
M'0>PZXV0 8'Z/BVT T[K8%1SG>$Q&O=(D.E83%6FE2YSB";UE/>:2AC#Y!^^
MF4E%J"CBI$Q38UC76L"5\CXWM/.CU!CH6+T?6C'-W @S9AL8S-1;RJO#DCHN
MBL,.@Y-7'2!*1=!G)+_:Y5WM@VP/O$$78/!Q-/."*L3]UTF'M.1B' $V]$EN
M?9#('D<581L7;88S'(YXL9Z.<:+ST&T8$'=OECK@DX,<,,?MMADTAAV!6A\Z
M$9+>E[F5WH>0O"73I37('DL=<"&[];['*- WA_5AW3TU#E\NRNPVK4%9]'H$
M5%*OKX^A"I86$"2H4$:9-KI?+0UHE+1%&3,C&SQ O[1MQ6^PA*XUW7'D1-XV
MT7@ WE=,42U:RYT0F0U?OBY9_U(('.%TW=6JM;'#,:Q]T);VT>%(\\?E 6E\
M3O:'3CHNCRKLL(1^=H*9'QT:,2:;>#3VJ8W2^7%\.IZ^7Z=#Y\$\'=T_D-M@
M76*:2K@N9B].)\JEXW"Z";:-1]#,!LQDO*SP%P0[,<#[TD*&_D82C'^37/X/
M4$L#!!0    ( $ATAU*XV#^4?@,  &\'   9    >&PO=V]R:W-H965T<R]S
M:&5E=#(S+GAM;(U5;6_;-A#^*P?-&Q+ M=XLV4X= W&V8@W0-FBZ[<.P#[1T
MLHA0I$I2=?+O=Z1DU1D:8Q]L\LB[YYY[X6E]4/K1U(@6GAHAS7506]M>A:$I
M:FR8F:D6)=U42C?,DJCWH6DULM(;-2),HB@/&\9EL%G[LWN]6:O."B[Q7H/I
MFH;IYRT*=;@.XN!X\)GO:^L.PLVZ97M\0/M'>Z])"D>4DC<H#5<2-%;7P4U\
MM9T[?:_P)\>#.=F#BV2GU*,3WI?70>0(H<#".@1&RS>\12$<$-'X.F &HTMG
M>+H_HK_SL5,L.V;P5HF_>&GKZV 90(D5ZX3]K Z_XQ!/YO *)8S_AT.OFT8!
M%)VQJAF,B4'#9;^RIR$/)P;+UPR2P2#QO'M'GN6OS++-6JL#:*=-:&[C0_76
M1(Y+5Y0'J^F6DYW=?%06(<[@#3S43"/<LI9;)M:A)7"G$A8#T+8'2EX!BA/X
MH*2M#?PF2RQ? H3$:J26'*EMD[.(=TS.((VGD$1)? 8O'4--/5YZ)E0#5L$[
M+IDL.!/P8)E%:C%KSN#/1_RYQY^_@O\B@?#W%WRRL!6J>/SG1]D\CW4LRR<)
M=YU$R%T6XN44?OEIF2316R> H@OW\T*2]>MDD46C61QYN]44)FDVHPNOPF1)
M[TE0Z"6T6IF67DAGZ%VVK?#9@(H+NN,2"B7E\'X.W-9@:W)95:BYW,.%DP9"
MGX9#+\9O+XGQ*HJF4111&#_#))EGLXB6-)_E/8N[3CR[TD:SGBY)L0\SB4["
M3"(?8L.>Q]4?^G!IG<3P4?7;+\2F4H+&C"-GV4X@&+2&#O5 O5!-0Z$85RD#
M-*.,I63X6&37[%!3<,=;BM[6JC.D8"ZO@+JQHZGE&_*U_<5H\!WGTK?O0)I*
M 5LFJ/MP"CO<<RF=<U)^1J9A.9_&60Z+?+K,,[<L%FG_+HF.,1V65]2RU%&@
M6E<3XTOI_4 G.86*3Z@+;JAX:;J$50;S'-Z3I?/HW+Q,P)N^2K3>%%\[;G@/
M>N&[+[VD\V25.XB1,Y*_$[;SU?P_I&^9J:&B&AC76M\XC0*HM&K _$_>9>=[
MRR5M>I*U23Y+J-BS#";1+/O1:PU/AF"#>N]'O:&(.VG[>3B>CE^3FWZ(?E?O
M/T4?F*;2&!!8D6DT6V0!Z'Z\]X)5K1^I.V5I0/MM35]$U$Z![BM%&1P$YV#\
MQF[^!5!+ P04    " !(=(=2)17Y 7P#  "S!P  &0   'AL+W=O<FMS:&5E
M=',O<VAE970R-"YX;6R556UOVS80_BL'#1A:0(LHR7IQ:AN(VQ3;@!9&W:T8
MAGV@)=HB0I$J2<7)O]^1DI6L=8SU@V7RR'ON>>[(X^*H])UI&+/PT IIED%C
M;7<=1:9J6$O-E>J8Q)6]TBVU.-6'R'2:T=H[M2)*",FCEG(9K!;>MM&KA>JM
MX))M-)B^;:E^7#.ACLL@#DZ&3_S06&>(5HN.'MB6V3^ZC<99-*'4O&72<"5!
ML_TRN(FOUS.WWV_XD[.C>38&IV2GU)V;_%8O ^((,<$JZQ H_MVSMTP(!X0T
MOHZ8P132.3X?G]#?>^VH94<->ZO$%U[;9AF4 =1L3WMA/ZGCKVS4DSF\2@GC
MOW <]J9) %5OK&I'9V30<CG\TX<Q#\\<2O*"0S(Z))[W$,BS?$<M72VT.H)V
MNQ'-#;Q4[XWDN'1%V5J-JQS][.JCL@SB''Z!6ZHEEP<#&Z9AVU#-%I'%"&Y?
M5(UHZP$M>0$M3N"#DK8Q<"MK5O\7($)J$[_DQ&^=7$3\G<HK2.,0$I+$%_#2
M26_J\=(+>@U8!>^YI++B5,#64LOPG%ES 7\VX<\\_NP%_.^S"']_9@\6UD)5
M=_^<2^EEP%.!/C<,]DK@)4)XL'0G&!AF#1JU;<#B<J7:KD<Q[K2KO3NLO (J
M:ZBYZ"VK@9W(=4C.>'*O?OZI3!+RYG:S]:/XS6MX)?MVASL0PV\RP"4&4+U!
M,//Z&OY"H*'"@/7I\3)/)?K60+XQQ'/XB*V&2R3K!&GH>MTI@T$P7$5%U0M4
M@!+_%_TL"6-"(,W#^;QP(9*B@"_^*J(#O6<:.\M)!?8D8Q'0H9>S,,T)E'&8
M9W,H\K!,$WCG F&3 +;?8]=PC%C;"?7($,-B_4!U+KL&TJS$:"4*RLYY832K
M>>4YH #DZ]NGK$8NT$N.I8M#DI90S@D4V>Q[VIBBUC4N1!B'[&O/[ZG LWI6
M4Q8660YE$I9Y 441%O/XZ5H_)6WM,TNN\@0_L\Q]XD$%!D=S/)D)8.OS9^L1
MDV^ G:WY6&A7W! U%1D),4$DG.4S2(H8V<Q_' ?]XAQ-63@G<Y!<P$U=<Y=]
M*L1CZ(_.#P'.TI"0)/10^ O/7?;H62-MF3[XY\)@]GMIAYXZ6:<7Z69HQ$_;
MA^?L ]4'CB=%L#VZDJLB"T /3\0PL:KS;7FG+#9Y/VSP567:;<#UO<*;/TY<
M@.F=7OT+4$L#!!0    ( $ATAU)KNK(,^P@  / 9   9    >&PO=V]R:W-H
M965T<R]S:&5E=#(U+GAM;-U9:6_CNA7]*X2;%A- D452ZS03(,DL?47?O""9
M!471#XQ,V\+(DBO2=M)?WW,IV9'7F7E?BA:9T7IY>;=S+BE?KNKFFYEJ;=G3
MK*S,F\'4VOGKX=#D4SU3QJ_GNL*;<=W,E,5M,QF:>:/5R V:E4,1!/%PIHIJ
M<'7IGMTU5Y?UPI9%I>\:9A:SF6J>;W19K]X,^&#]X+Z83"T]&%Y=SM5$/VC[
M>7[7X&ZXT3(J9KHR15VQ1H_?#*[YZYN0Y)W ET*O3.^:D2>/=?V-;GX9O1D$
M9) N=6Y)@\)IJ6]U69(BF/&O3N=@,R4-[%^OM;]WOL.71V7T;5U^+49V^F:0
M#MA(C]6BM/?UZB^Z\R<B?7E=&G=DJU8VC 8L7QA;S[K!L&!65.U9/75QZ U(
M@R,#1#= .+O;B9R5;Y555Y=-O6(-24,;73A7W6@85U24E ?;X&V!<?;J8VTU
MXPF[8 ^VSK]=D(<C=EO/D'6C7.#N2E69RZ'%;#1FF'>:;UK-XHAF+MBO=66G
MAKVK1GJTK6 (,S>VBK6M-^*DQK^JRF>2>TP$@I_0)S>^2Z=/GO#=,%NS]T6E
MJKQ0)8*@K$;-67-"?[C1'SK]X1']#U/5Z"ZB=^J9U++KIE'5Q$W!_O%)/UEV
M4R+N_SP4W]/:UYG[5%L8KHTM4*.8R?3RF/?SJ)_H6@-*>3VIBG_C?5&Q>M%
MK#)U68RZ\5T(6#UF '_C1ANV4H;AW[@N 63SFOU=JZ9-+4-B%D"TR\VQ:\H9
M'0(<>(8*,VZ"1B]UM4 :)!X*O.5QP!Y4B2>J&J'2FV_:%M6$I5G,DB!FH8S9
MO3:8/)\ZD1$TE/7<61P&(1,I9SP-V0==P?;2R:@1H%,82[XL-0N]. N9]))
M,.%E,F#OQF/0!$.4*A!A42%PFL6>Y!+"69"1, _8VP)RC:YRF/>H[4KKBDU1
M%!^NK^_:B>;SLLC58ZG72JQZ8J5:H<[ F9;9J69J5B]@+,DC:>2<"X3+BLL4
M;K^;Q9EZ9F>!G[2'G4@'YR[>7B_@$.-T$"W0V6_S-JW7AJ;;S93'N,?#Q$LP
M7'HRD%X8AD=ESR+H%C##)?E,^))]@I_656:UF#WJIBVF=LH)($"5-EHTY#R%
MY!GY-$SO5=.N%S+E7AIE'I-QXO%$,I$(&!KNU]J6[QS.8]!9ZF>X2WRDD@Q<
M.<[6HPNU1*E,D!F#YM19N4*B?Z3@G<^[\=]Y !O>(6^Y\[I8%B-XRIX+78[8
MJS^>@WSI;R.QK$ODNBSLLWLK8A]5+?V(#BC^PGR[&#<:0 90G015 "<A/WC1
MTD:;E<480BZ^YRQR?]?K%OR2E+8[THP+.-@P59;N)<AA3O3/"L/0](UVB>M'
MY>,FO=MU]=O"@DFJ$67XZSK.[+H+]+LGW>0%ROBN*7)]0.!>TXJ"!M^BB30P
M;X%:^EO?F>O)I-$3BL$OD"BP3LC9%U4N( %>FQ5E28:<LQL%#S )T+>7E33)
M/"E3=L8$ LA92(!B*8X?NB)=%]H9:L\'_ZPM1^8R4$,2L'.\XY$?"X9UPE@7
M-.J5(,+(W#O)_4P>MX(XS^,B\5(AR([83P7LB.F:X+HQI"U]/ ZY'_&^(?#
MDZ%H+4G]4.Y8$J\MD7Z:GK"$]U#OI),$EM"4(@7"OZ#)4&$UCH1<D:%Y+O'T
MYW5UUCNF/#0X#F,OB",2S_R( B);Y^(>M12;O"]=WGL<HS?1^1TL0WR1$H\%
MQ)CIIJ;K7DT3>^],UCIC#OIS"!;K9_U8W-/J@!S91HC90.0HX#8"/P&AO3$[
MN#PVUQGGOA3L3W](!>=_1J1 ^6$+(D $;=R+4*FB33>>4>='"Z'J%4!*U!N9
M^((R2V<T8YYXJ'-D6W3/)'(>HU$#EC+QX_AEI,Q\&72PS%@L8R^-,Q8Y $,4
MRP4115Y*A!]F/A8&FY%11+=G+ I]SAD:2(93[">.A=>U^E*]7=6Z,ER7Y1:%
M4FG1JFEAUIRYJ)8M5EP;W]2).M@_?R>%.EZX>$O\]UX534=]6*\QM^X\27M2
M1)[@1'NQC],^U[E&V>']E4##%7%+(3$%=IM=PNX5TI.=I+DPR+PX:M4'\@"Q
MN3;],FT<>P+<?.X&X,5A4@O]-#G):5' ,2U1B4OAG6[<7I;$VTA]QK++;*?T
M[N'S2TLLS)&.!ZD?RA(LWLW3?ZWC13( Q#HRQ?HW\BDR/ :QKFV-T+L$Y2.2
MA-5^P!8N5 6629 +(R^)'5"E+\*3J8]%YJ5)1Q%D!5$K=8*7_I9&Z,0=+*'M
M^*R!%Z\;0W"ZFR5$ *Z>P3H\Z;I[&&+RG^QE)S1]KY-%L6B9#YLU'_?2!5P*
M]!7J9&J3TYUN9K EZ)9<CF':EH<G%[2EV&U]K^R6KKRL#962<04^=V3><1-V
M$S,L^-P;0SN>78O/]Y[XQU?^1(X<66Q7_G2%S1E,<Q$]"J_['X+7_?\@O*1,
MT"!H\<9#/R1XQ2VQO< +$C$:3MNY3L-&)MBJ)DD+T"CI8(/K%\Z.$B]R3!X"
MA-%).(02>Z7,P3WSL[0K8A2T^%DXG-#T/3C(!$@*.\Z)J+OREA6R_P<X"(";
M(SMK.(3LK1[KIMD"@_NB1CH.Q ='$7L1,BDB[H58$^UM[3$-E[0^I478_FM_
MK0?[=C3D,$7OC@_,4Q6E^W] P9G;?KAB$_Z>!?VELL=NE9E>/&AK2_AX$/N=
MNWW\[^PV*0^WQ FTUSS.![<_0 @_ /-3\$5+"V*L.?MP#;P@C=<(H66_Z;P%
M*>3P'OLOX3)U0C6M?@2Z:K*E&IE&8SRM&MTZI#UF?_$3IB?G LA2*$XQ5\0^
MUM5%MQC]CN37WJ=!![&M[TYY]\&.7K2):)0%RI%/A+Y= ^MF"60-:3K* -:B
M13V"4OJ<05NPVHFYSS_.VZE:MG,V(^=_#[$JSQOJ]F6A'MM/(9@;F[%LWX57
M[2;M0!T? "@YBL/^%QLJ>]Y^(LL.*MPJ^T-?AX>]K_ SW4S<;PT&@5M4MOT@
MOWFZ^3GCNOV*_R+>_A;RJVHFH#-6ZC&&!GX2#5C3_K[0WMAZ[K[I/];6UC-W
M.=4*6"(!O!_7M5W?T 2;'WFN_@-02P,$%     @ 2'2'4EJ6#DEO"   :10
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
M   9    >&PO=V]R:W-H965T<R]S:&5E=#(X+GAM;(U6;6_;-A#^*P>A'QK
MM=[LV EL [';8AG0-4BR%<.P#[1TCMA0I$I2EOWO=R05S\UB8S! \>7NN;N'
M=SS/.J6?385H85<+:>9196US'<>FJ+!F9J@:E'2R4;IFEI;Z*3:-1E9ZI5K$
M69)<QC7C,EK,_-Z=7LQ4:P67>*?!M'7-]'Z)0G7S*(U>-N[Y4V7=1KR8->P)
M']#^WMQI6L4'E)+7* U7$C1NYM%->KT<.7DO\ ?'SAS-P46R5NK9+6[+>90X
MAU!@81T"H\\65RB$ R(W?O28T<&D4SR>OZ!_]K%3+&MF<*7$-U[::AY-(RAQ
MPUIA[U7W"_;QC!U>H83Q(W1!=CR.H&B-576O3![47(8OV_4\'"E,DQ,*6:^0
M>;^#(>_E1V;98J95!]I)$YJ;^%"]-CG'I;N4!ZOIE).>7?RF+$*6P ?X:BO4
ML*J8?D(SBRV!.Y&XZ(&6 2@[ 91F\$5)6QGX)$LL?P:(R:N#:]F+:\OL+.*O
M3 XA3P?D7I:>P<L/H>8>+S\3J@&KX#.73!:<"7BPS"*EF#5G\$<'_)'''YW
M#P3>RD+5"$R6/:.?=E1 !N$C-X50IM4(?SWBSL)2J.+Y[[>8/FO'E>FU:5B!
M\XCJT*#>8G2XQV"S"+<(C(R1.XWF!DM0&RJ"'RTWW!7$!XV"HB])P%@SH(^T
M7#X1&6YJ>(F:A<(IOU,>>I9\6&33ZK:PK29QX)+0F"LM UW%BPHJMD58(TIH
M*1.T9<\TW6A5@Z5R=A?@O_X0MDQSU9I7H(U@T@SAYI2W0!'1&\+%GNP7HBV)
M\'++C=)[<(3P BDB5E+!<,+U[O6:(0)+T;C8UDJV)F0%UHU0>Z3%=T5JY,5Z
M#QW;>]KD,7,##T*5YY^6+9(7P3L'X^@6Z#QU0HU6I@E2QP@4VV.%L"$(U3E3
MEJT%63:5ZLB9*MR:DIYSLJ]^OE73:YIK^!.9#A4'5"\MO:N^9$[-72FY(:$A
MO3I#<#JXFJ:0#T;C"8WI= *K_Y,?[TEO= D7D(\2&%^E</_?>X5LD"?NQ7%>
M#/)\3 8F5Q,_3JDX34&5Z1V]E9X+@V2P]%M]!.^R80[ODF'Z%HW'+%9,.L9X
M 'J59%I1RK@(J+?Y\V/;WZB9T'Z!%$+9AA;R=;.AS()5*&,#C\J2^))15+3-
M[&NJ79#N=U,4NF4B)-\Q7>E@DDY@/,U[3E;,5%!JUD&I.NGIO*0+N(#W3H8^
MV2 C8B^ .A+U&PFX"R%"ZFS1<-J9%"9.AH:WWKKXJ(742&GF&J6AFVZE#=WD
ML'OHQ3>A!?TK'AKY%\I23LX+W)!J,IQ0Z].A.8:%58UO2&MEJ;WY:47_)U [
M 3K?*'K,^H4S</B'LO@'4$L#!!0    ( $ATAU)BX".D, ,  )H&   9
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
M5N0+L/-]:_[P9@QWG+7QU'9AV=$5%2T+T/_6T"&Y_V #QTOOY7]02P,$%
M  @ 2'2'4G6 8%<- @  ?@0  !D   !X;"]W;W)K<VAE971S+W-H965T,S$N
M>&UL?91O;YLP$,:_R@GM91<(I-E4$:2F:[1-ZA8U^_-BV@L'+L&*L:E]E/3;
MSS:$95/#&_#9]_S\G#F3MDH?3(E(<*R$-(N@)*IOPM#D)5;,3%2-TJ[LE*X8
MV5#O0U-K9(4752*,HV@>5HS+($O]W%IGJ6I(<(EK#::I*J9?EBA4NPBFP6GB
MD>]+<A-AEM9LCQND[_5:VR@<* 6O4!JN)&C<+8+;Z<URYO)]P@^.K3D;@ZMD
MJ]3!!9^*11 Y0R@P)T=@]O6,=RB$ UD;3STS&+9TPO/QB;[RM=M:MLS@G1(_
M>4'E(G@?0($[U@AZ5.U'[.NY=KQ<">.?T':YB=TQ;PRIJA?;N.*R>[-C?PYG
M@EET01#W@MC[[C;R+C\P8EFJ50O:95N:&_A2O=J:X])]E UIN\JMCK(OBA#B
M!-["IMD:?&I0$MP_VV<:DN6[K##O6<N.%5]@36-X4))* _>RP.)?0&B-#>[B
MD[ME/$K\S.0$DND5Q%$\'>$E0[6)YR4CU1H@!2LNF<PY$[ A1FB[C,P(?S;P
M9YX_N\#__PP-_/J&1X*E4/GA]VLG.LX[?9VO$E:XU8V]-A#/N^.X@C?)?!*!
M5/2:\_"L)RK4>]_Y!G+52.K:8Y@=+M=MUU-_T[N;^<#TGDL# G=6&DW>70>@
MNV[O E*U[["M(MNO?EC:'P1JEV#7=\K6T0=N@^&7D_T!4$L#!!0    ( $AT
MAU+8_R^2C"   #%L   9    >&PO=V]R:W-H965T<R]S:&5E=#,R+GAM;.U=
MZ6_;2);_5XAL[TP"R(HE)^ED^@"<:R:#]"2(G<D"@_E B26I.A2IX6%%_=?O
M^[WWZB!%T78/%E@L]H-MB4?5JW=?5?YQ7U9?ZXTQ3?)MFQ?U3P\V3;/[T^/'
M]7)CMFD]+7>FH#NKLMJF#7VMUH_K7672C%_:YH_GY^?/'F]36SSX^4>^]K'Z
M^<>R;7);F(]54K?;;5H=7IJ\W/_T8/; 7?ADUYL&%Q[__.,N79LKTWS>?:SH
MVV,_2F:WIJAM62256?WTX'+VIY?S.5[@)_YNS;Z./B=8RJ(LO^++N^RG!^>
MR.1FV6"(E/[<F%<FSS$2P?$O'?2!GQ,OQI_=Z&]Y\;2815J;5V7^Q6;-YJ<'
MSQ\DF5FE;=Y\*O=_,;J@IQAO6>8U_T[V^NSY@V39UDVYU9<)@JTMY&_Z31%Q
MEQ?F^@(CXK%,Q%"^3IOTYQ^K<I]4>)I&PP=>*K]-P-D"5+EJ*KIKZ;WFYRN[
M+NS*+M.B22Z7R[(M&ENLDX]E;I?6U,E#]^G1CX\;F@]O/5[JV"]E[/F)L6?S
MY)>R:#9U\J;(3-8=X#$!ZJ&=.VA?SD='_&M:3).+V229G\]G(^-=^-5?\'@7
M)\8;6O$_+A=U4Q&W_'-D@B=^@B<\P9,3$[Q,:ULGY2K"[42F.B3_T+_7YEN3
MO,S+Y==_#N%X?(+KC2'.7I;;75H<L(YE6=0T;I8V)DM6MDB+I4WSI&[H DE3
M4R=I91*2X)J^T".V2#X7%I^N\ A1_ __\7P^/__A\Q5_F/WP*,G*/$\K>K/(
MW-L[^LLO8_(JHUD,<6ZS2=:F,%6:YP?<,3L,G 8L[RI+\.QRFH?>;0CXSU=^
MQC]?7G[T<V(NW*]:/(QOE5FW>0I99HSBYJNT2#.;%LF56;:5;4"_RXS$Q(*$
M3:DPZSS10[CZYMMRDQ9K&J7<;FW->L:!<O7FE8>$5!^/(*MF ##_K8B>)B .
M*:4\P\.T_I9F;LK$?-N9RAJ@+$W6>;F@UXA\F=E:(KG)>41Z#I.*KO7K_?#W
M=Z_/DMD+4@&'I"B;Y$-;T>3UDH8XF+2BB;9;C$PH*I*W9E&UI&N3&8&5D/#P
MEXO>-Y$F^:V+GB2*A^A:_XUS^3WPAKL679J?&&2>C-V<CDC@4R^!3T<%Y)4G
M$]'MOK(W/K07[F4\!U/]=BDD.<C;S#!9!Q^@<5\;(FS5*+^61.K]AD3Q<%;N
M"QJW;A>U)?8G7B)F^V)(3L$3(TA[YI'V;'1E9/#(G!7)J[:JB)L(3U5:U.E2
MA _ \ 4GC?=#ZMVF7KJIFS 3HY8$6?110LA7N80NDR?\:TYB1#-.D\NZ-HW
MGMMT87-1!/08\!JCDE6<FY65',FBGY5N-SRR<>J#5(*!-C.K%;D:[C8)-2M%
M\:W "-/DD[DQK 0 !;1 4=\^75M#<6:I)97:F1,*)L)-FOU*[H+P#F&$O!*\
MMZK*+<%#J-I5):D%F8XT<KMMW7Q)20"SZB!4;N!QW6!!]-TD#_.RKDD;TWM)
M+?K/\)-E03,!??6&1B2VS$Q5_S$Q_VIM0^C^4#!.&_(KP->YI>N9UYTIE"J3
MF=S+2D6SV?1&CJ$< 9$U)M;**I/03U V=MF"18ZF =-49EF2U_.;++[IBVM7
M!OV;JL]7;<%B0(N*><VDRXUC)GI5F(OF"N80\Y!,Q._1[/N-I1?IWD%G,M.N
ML-$B\3B#JB\RWS(^:+G%T,! 7B%P')C@M, ;4T5VI?>",FT39E:6)0?.--#)
MZ;#\9*8HR=XZ3EIUI==)4V7.MB:MV\KQ]VD0?H=87>9Y?^)#-"5(F:PI0%'H
MB:$5+-7!##DM4QEJFKQ5B\\6U<!W'3"7WYU/GQ_91#9Y,S)E=/=9[RY9[>CN
MDQ$U_;U7T]^/ZLK/M0&IW]2-W4(AW->\W6ETXT9//K(#Q%IEV**!S1 H@NO8
M&81'1Y0@V2>-1#Y+08$>DX-88)M^-='@[%O6%!SNA.]9DE.A/6B1;N%#NNO,
M4[NR:D[(\+#C6V1=7YF,)1E-\IZ()XA1:K!2LRG;-4MD/08>($ TF,'/"@O[
M8YTLZ*7D:U'N<Y.M&8/"DTT"[=\0D4C 6H),E'3M7;DWHY.UF&M/JB]VI^&:
MDN^^K4G9DAJ!ELXA5ATG>==6)%(U#*6%RZD.\2JU57*3YBW#"/9W(KYD>C%B
M%[ ^L!J$M07$')HATA*T&@)LU4+#WX@Y)?DF^;6+W,0Z@ZP/J3=H(Y@^FF '
M=$T("6P2O=L;,"["R;;/-*:"4P\=3Y 3&&VE"[%;7(49(MCJE>HN^DZS<<X"
MRJ)<Y':=*KPWQ,(IH /#V,R;'W:Q6*M&CWN\$OQ92ZQ8&9J[< $)&8,,!"6D
M[WDF$"0KVT4#E"BAZ &*TI&&$+7)ZEEF(DMD[ V@H8=HBAM;\ZP8AA0A$%\"
M'F)LP]H0'%16A\D13M3/^2/C370>L=BBK$BEX!EH4V";XB):1LM23/!1>)#3
MU%U>J!M2&&?"W9 6,K<.1Q%3FNVBS&R0/[P>#+Q0GOF3 +,52SVNUK40OL_%
M8LN;])MA&KFQ/&IEL,RLC%I#][S.A<6EN?W-@P!DB3_$3Q%2,HO'R'X3(Z:
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
M-BNQXO98UZCH9JM-Q1V9IHAL;9#G 53)*(GC651QH5BZ"&<W)EWHQDFA\,:
M;:J*F]<U2KU;LA%[.[@51>G\090N:E[@';H?]8TA*^I9<E&ALD(K,+A=LM5H
MOIYX_^#P('!G!WOPF6RT?O3&5;YDL1>$$C/G&3A]GO$4I?1$)..IXV1]2 \<
M[M_8+T+NE,N&6SS5\J?(7;ED)PQRW/)&NEN]N\0NGZGGR[2T885=ZSL;,\@:
MZW35@4E!)53[Y2]='0: DW@/(.D 2=#=!@HJS[CCZ<+H'1CO36Q^$U(-:!(G
ME/\I=\[0K2"<2[]KAS"!+W#!A8$'+AN$:^2V,4BE=Q8^W?.-1/MY$3D*YT%1
MUE&O6^ID#_4H@6NM7&GA7.68OR>(2&<O-GD3NTX.,G[CZAC&HR-(XF1T@&_<
M)S\.?.,#R5MH$SQ -^GI)H%NLH?NCCHF;R2"WL(9&O',_8N#E;5(A>1N6.-?
M(2K<XXN#M=39X^^/"GPPGN_7N:UYADM&#6G1/"-+AT'>Z;"TMZ)0W&$.W,(E
MY@7"E;+.-.VOWH^D0@W1JW^@!\GSD/P<SI\:X5XAHP=AJ!,MO;B3HS@>=>M_
M(WIZ-)O.NO6C)Q,-6K%"4X2!8XFB4:[MROZTGVFKMI7_NK<#\9J;0B@+$K<$
MC8^_3AF8=LBTAM-U:.R-=C0FPK:DN8S&.]#]5M/[[@P?H)_TZ1]02P,$%
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
MD_34 S7TK&%A9.?ZQ$H:8NZF%;5Y5-: SM>2ZF6WL '&'\?L#U!+ P04
M" !(=(=2OIPFU_ "   @!@  &0   'AL+W=O<FMS:&5E=',O<VAE970S."YX
M;6R-54UOXS80_2L#G;H $TG4AZW -A"GN^@6W2#89-M#T0,CC24B$JF25)SM
MK^^0<EPOD!B]4!QRYLV;9\YXM=?FR7:(#EZ&7MEUU#DW7L6QK3L<A+W4(RJZ
MV6DS"$>F:6,[&A1-"!KZF"=)&0]"JFBS"F=W9K/2D^NEPCL#=AH&8;YOL=?[
M=91&KP=?9=LY?Q!O5J-H\1[=M_'.D!4?41HYH+)2*S"X6T?7Z=4V]_[!X7>)
M>WNR!U_)H]9/WOC<K*/$$\(>:^<1!'V>\0;[W@,1C;\/F-$QI0\\W;^B?PJU
M4RV/PN*-[O^0C>O6T3*"!G=BZMU7O?\%#_44'J_6O0TK[&??DD=03];IX1!,
M# :IYJ]X.>AP$K!,W@G@AP >>,^) LN?A1.;E=%[,-Z;T/PFE!JBB9Q4_D>Y
M=X9N)<6YS:UV"!5<P&?EA&KE8X]P;2TZ"S\]"++LAU7L*)%WC^L#Z'8&Y>^
MIAR^:.4Z"Q]5@\V/ #$Q/-+DKS2W_"SBKT)=0I8RX E/S^!EQ[*S@)>=*=O"
M7. 9N/P(EP>X_!VX>^J59B+I] X^224=7OQ&CZUY0]4_0U)XP!<'VU[73W^]
MI>_9=+Y1K^PH:EQ'U(D6S3-&&R"-)NJK(-/IWDOFEP1NM'5P$QX5&A"M0:3^
M(E)"-=1AO?"-8CLY6N!YPO)%!9R7K$AS^/@BK9.J!8=UIW2OV^_ JX*E)6&7
MG)7D\V!$@Z#$0-(NV3+/:2V6'&ZUNJCU,"(]M5H_HQ(^9YJP*JN@8M6R@*(H
M6,XS*)(%*ZL"KNMZ&B8B1!J*01LG_PGD_B?[-*U81LRJ)>-Y^B;Y=)FQ@O*G
M.6>+8O$#^8)554EKRO-WR),H60$YE;T@C8E[1C(4"5L0XBV-4IY1716GLY)5
M10EOO;'XI&NIHC;,)DM))N7F!CZ>'L??]=SU_[G/L_.+,*U4%GK<46ARN2@B
M,/,\F@VGQS #'K4C^<*VHQ&.QCO0_4Y30QP,G^#XI[#Y%U!+ P04    " !(
M=(=2!L-ZE^ "   7!@  &0   'AL+W=O<FMS:&5E=',O<VAE970S.2YX;6Q]
M5=MRVC 0_94=/[4S;GS#F&2 F4#3Z[1E0MH^=/H@[ 6KD257$H'^?5<R<2EM
M>,&2]NS9LROM,MXI?6]J1 O[1D@S"6IKVZLH,F6-#3,7JD5)EK72#;.TU9O(
MM!I9Y9T:$:5Q/(P:QF4P'?NSA9Z.U=8*+G&AP6R;ANE?,Q1J-PF2X/'@EF]J
MZPZBZ;AE&URB_=PN-.VBGJ7B#4K#E02-ZTEPG5S-!@[O 5\X[LS1&EPF*Z7N
MW>9M-0EB)P@%EM8Q,/H\X!R%<$0DX^>!,^A#.L?C]2/[*Y\[Y;)B!N=*?.65
MK2?!*( *UVPK[*W:O<%#/KGC*Y4P_A=V'79P&4"Y-58U!V=2T'#9?=G^4(<C
MAU'\A$-Z<$B][BZ05_F2638=:[4#[=#$YA8^5>]-XKATE[*TFJR<_.STH[((
M20POX+52U8X+ <_NV$J@>3Z.+ 5PL*@\D,TZLO0)LB2%#TK:VL"-K+#ZFR B
M9;V\]%'>+#W+^([)"\B2$-(X3<[P97VZF>?+SJ1KH$OP#-V@IQMXNL$3='-%
M>4J#%<R9J>$5/7%86F:1GJV%;SX.W.'>PDRH\O[[_TIZ-H+KR2O3LA(G 36=
M0?V P12H+%MJ(5^9X[6KDON)8<8$DR4"L[#"#9>2RPVH-;2HN:H@3[-P>!E#
M5HS"I!C!=?ESRPWWC4*H+]QLF8"Y:EK!/<\+2))16(SR4^C\T^V-LZ;AL(A/
MC<N[FT6I&F>/PSBY/+7/T-@[S:1IE;:$RL,\R4Y!"U2MP >UAR0/DU%*N!/$
M>WIT-']0&\C"P3#Y%[&L>4N!RGLG)$L+AZA^4'NYBS+@QT.IMG1I!*911\TL
M ?=ES>0&77)Y4L"S)!P4.3P_+B[*ZKBL0U)8%'UY__?$HJ-F;5!O_$@RX*-W
M?=N?]E/ONFOV/_!N9'Y@FJ[6@, UN<8711Z [L90M[&J]:V_4I8&B5_6-+E1
M.P#9UXKZX;!Q ?K_@NEO4$L#!!0    ( $ATAU)#SFGE90(  "H%   9
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
M5EDJ<+\LJ:.B=@9TOU,46[=Q!'V/7OX!4$L#!!0    ( $ATAU*J-QJ\ @,
M '@&   9    >&PO=V]R:W-H965T<R]S:&5E=#0S+GAM;'U5VV[;, S]%<)/
M&^#5M_B2(@FPK!VV 1V*=1<,PQY4FTF$RI(GR4GW]Z-DU^VV-"^V1)&'Y] B
MO3@H?6=VB!;N6R'-,MA9VYU'D:EWV#)SICJ4=+)1NF66MGH;F4XC:WQ0*Z(T
MCHNH95P&JX6W7>O50O56<(G7&DS?MDS_7J-0AV60! ^&3WR[L\X0K18=V^(-
MVB_=M:9=-*$TO$5IN)*@<;,,7B?GZYGS]PY?.1[,DS4X);=*W;G-^V89Q(X0
M"JRM0V#TVN,;%,(!$8U?(V8PI72!3]</Z&^]=M)RRPR^4>(;;^QN&50!-+AA
MO;"?U.$=CGIRAU<K8?P3#H-O,0^@[HU5[1A,#%HNAS>['^OP)*"*GPE(QX#4
M\QX2>987S++50JL#:.=-:&[AI?IH(L>E^R@W5M,IISB[^J@L0E+ *[AD6G*Y
M-7"-&FYV3".\^,QN!9J7B\A2*A<0U2/L>H!-GX%-4KA2TNX,7,H&F[\!(N(X
M$4T?B*[3DX@?F#R#+ DAC=/D!%XV"<\\7G9"N(%!X FXV00W\W"S9^!NJ%N:
M7B"HS9%*AK!FAM? 9 ,77/06&_CA<\-GO+>P%JJ^^WFLS">SNHX]-QVK<1E0
M2QK4>PQ6\!V9'NH.5+6>>FTJW+^&^!]#,H>/- FXK%6+0#T/7:\[9:A4)*QF
MHNX%LR3.M<(HJ!D%X8/LCF0;?X'R-$SB&+(BG,]+ER(M2_CF.X4"V!XU-?[@
M2PEZ:RP!.O1J%F9%#%42%OD<RB*LLG2H'/4PX&9#3>T88=L)]1L)PU(%076N
MU0UD>479*A*4'XNB;%;SVG,@ <373S=9CUR@E]P:2,(XJZ":QU#FL_]I4XE:
M-U<(85SBKY[OF4!ICVK*PS(OH$K#JBBA+,-RGCS>E<>B#5<E/BM2>LQR]TBF
M6T/F9#+'<.SF1D^F08MZZV>>(8Z]M,-@F*S36'T]3)-']V$F7S&]Y51/@1L*
MC<_*/  ]S+EA8U7G9\NMLC2I_')'OP;4SH'.-XK:;-RX!-//9O4'4$L#!!0
M   ( $ATAU($J+[\3P<  -(7   9    >&PO=V]R:W-H965T<R]S:&5E=#0T
M+GAM;-58;6_CN!'^*P,W5R2 0HND1$G;)$"2VWO#W6Z0W.ZA*/J!L6E;B"SY
M)#K9]-?W(26_))LH-O: HC @2]3,<#CS/#,43QZJ^JZ9&6/IR[PHF]/!S-K%
MN^&P&<W,7#>L6I@2;R95/=<6C_5TV"QJH\=>:5X,11BJX5SGY>#LQ(]=U6<G
MU=(6>6FN:FJ6\[FN'R],43V<#OA@-7"=3V?6#0S/3A9Z:FZ,_;2XJO$T7%L9
MYW-3-GE54FTFIX-S_NZ">P4O\3DW#\W6/;FEW%;5G7OX>7PZ")U'IC CZTQH
M_-V;2U,4SA+\^+,S.EC/Z12W[U?6?_"+QV)N=6,NJ^*/?&QGIX-T0&,ST<O"
M7E<//YEN0;&S-ZJ*QE_IH9,-!S1:-K::=\KP8)Z7[;_^T@5B%P71*0CO=SN1
M]_)[;?7925T]4.VD8<W=^*5Z;3B7ERXK-[;&VQQZ]NQ#90WQA([IQE:CNV.W
MPC%=5G.DO=$^<%>%+ALZ_%W?%J8Y.AE:3.N4AZ-NBHMV"O'*%%S0;U5I9PV]
M+\=F_-3 $/ZNG18KIR]$K\5?=,E(\H!$*'B//;D.@O3V9$\0&FH7V&,N6IN+
MO+GH%7,W,UV;+I)7^A$8MG1>U[J<&G<?T/LO+KIXJTO$6B]RJXO\/V8<T/F\
M6D+Z7]X7^MU\L711("__?BGLO5XX.K]K%GID3@?@:V/J>S,XHW\:7;=Y($1Q
M"2+Z0+YV[P+L+B$N/ ,N&DO5!'2\-^42,9,8%'C+54@W&N'S2P*_[XS-RRFE
MF:(D5!1)1==P0M>CF1<9PT)1+7QLHC BD7+B:40_FM+4NO R>@S YXVMM6,N
M18'*(I)!$@H2029#>C^9@-P$C):H7WDYJN:&5""YA' 69DZ8A]23TGB=TK@_
MI:B&XR52@L6_F-X'72-]GD/T<>%XTP3T61?+ED/G#<I>.[QC<GO]V2^Y/HG/
M!L)G \BC0^7(0G><W^=C@P0\YJ88T^%W1R@/[K>6N*\*K*O([:-_*Q1#!B6+
MW06)SIN[XTEM#"%SQDN$+"'NA%BXL5+Y@%"13R#T"-^;(XK]KR=C:ITQ]6TD
M;+,$RKF^X%:R6UYZ9WTE+Q^6\UM3>^QL X0^+FUC@73'E#]\_S#C8SJ_!P.F
M!G$R]2AO#%W5^<B\('!M7-MURI>HKS4:W!+,^74[G.?3:6VF+@L_0R)',QUY
M5$(B+]%/BL(Y<D07&D4>DVC[-2[2) ND3.F !%+(*4(N#RC%]4>$TR52JB3@
MB<2H3!G8OO(<V,E Q"2D([SC,5."T$LG)G=:A\+1,_/O)&>9?-T+5V$"+I(@
M%<+YH5@JX(=R]R$3&T=2'J1QAN&(LYAO.X(5!#(2K2<IB^0S3]3*$\G2M,<3
M[CR)DB"!3UXZ2>")FU*DC--GTWAHUV16,+<5W6-T?UN=]QZ5+RFK2 6ABIUX
MQF(7$-DN3O41*%D3*/EK"/0,I]=.8D<R]7KP"IE>(L]J;#MBK1_@W%/_FC61
M7J7E6F /HGVE\RPJK\UUP#F3@O[^MU1P_@\Z$(+)J*4:B(36&L3 LVA!@3'7
MC640.8P+\"G>TDR8</EW_VB0/ G !F!"=&,2R%!HGB"O3)A2&TV9,1EVY,U(
M216D*J/8TQRB:.$BCH,TPYQ1QM"LUYIQ[!X/*(X8YY2@*^-/L<1WBQ6B-QCO
ML.W!N@)O#U+3-5+3G9OSAZJ\;RGH\;MO=>^=Z"^M[KYD'7_O2O,/.J^[JKR
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
M-!3VXX3!?I9F 'P_$D*_7A@'Z^/L%_\#4$L#!!0    ( $ATAU(:3'9L0 D
M -4[   9    >&PO=V]R:W-H965T<R]S:&5E=#4Q+GAM;,V;6W/B.A* _XJ*
M.@\S56RP+I;-5)*JA-Q(0D(EF=G:W=H'!T3PCK$XMLFEZOSXE8U!&$G&^!!F
M7A(,ZE:WI.Y/+<3A&X]^QF/&$O ^"<+XJ#%.DNFW5BL>C-G$BP_XE(7BDQ&/
M)EXB'J.75CR-F#?,A"9!"UD6;4T\/VP<'V;O]:/C0SY+ C]D_0C$L\G$BSY.
M6<#?CAJPL7CCP7\9)^D;K>/#J??"'EGR?=J/Q%-KJ67H3U@8^SP$$1L=-4[@
MM[YCIP)9BQ\^>XM77H/4E6?.?Z8/W>%1PTHM8@$;)*D*3_Q[91T6!*DF8<>?
MN=+&LL]4</7U0OM%YKQPYMF+68<'__2'R?BHX3; D(V\69 \\+<KECN4&3C@
M09S]!6]Y6ZL!!K,XX9-<6%@P\</Y?^\]'X@5 00- B@70%4%<"Z JPJ07(!4
M%;!S ;NJ ,T%Z+J :92<7,!9%W , FXNX%85:.<"[:H"T%K,G%75;;B<[,JS
M#1?3#97Y-AJVF'"HS+A19#'E4)ESH\ABTF'E68>+:8?9O+?F09)%V)F7>,>'
M$7\#4=I>Z$M?9&&:R8O \L,THSPFD?C4%W+)\1U/&,#@'^!D\.?,C_TTS&/P
MY8PEGA_$X(F])S,O^ KBL1>Q&/@A>!KS6>R%P[@)_M ]]_P@2)4<MA)A7]I+
M:Y#;<CJW!1EM>3T %FT"9"'K^^,9^/+'5XV63KF6ZUEX *"U2<M9N98+]GP
M$-RDY;Q<R\GL16C);(%MLY:+"AXA9Y.6RW(M/>\C'Y8R)5<5A@6B@I;YTM#H
MZE89G&R(H;M)U_46NCHGY;INJ@PW*MBET7);8:2LC5IZ&VSQA"UXO@SAIC&Z
MJZ[+VJ3KOK*NS>N@O_W<%;6T1%);9C:TS&PH4TL,:OO>A]CY)#%(^#RY10R<
MSF+1*HZ92%9W8KO&1Z#CQ>/%Y\,F>.*)%^CF:=X9S3I+MVFOQ\0E%CYLO:[.
M@-H*M9%EKS6[5YM1IXW1LE7!8;QT&)<ZO' .=/CDV0^]-)4W5_,Z>&"!E["A
M:! GNHGJ8<4NV';AFH]J(TQL9\U#32/H.GH'R=)!4LW!%9^:X%R\3CY -TR8
M6'X)Z,;Q3/C(H^R5]QPP,=>SR3.+TNE^G'/LBP#5?+U^!7\!X\KME1J4[O:_
MQ5-OP(X:8CL?L^B5-8Z!+C+G>NS"NJ!K0Z:V(50_8/9RP.SR$&!\&K!7_@[^
MTV/I"/RW)*[H4BG=8UR=435B"+2LXMCTM*VP83TY2T^<N@$C;!;1,F#^:[J
MA%>7$<\:ADDDBB"Q)0(G$SX+$YU+CCJ1*PX53'67IKJ[,;4)+CP_ C^\8,9T
MMKEJ&C/9UE[:UJYAFQBJV!^R*'L$3Y$7QB,6E>?8MAHEQ&K;>O.@);>X5JF!
M-V+61&W-HKA*',"5K3/<8R1T\MY6Y\9&2B3DK>Q"*U,D0 E+6$[+3XJ%3MYM
M84Y-"PY*TL':J-LJ'#IY/]7,DYR"%4&U'A&)'[Z(%;,6'">1B(X7EJVE)GA(
M7Z?KYGZ6#/@D'?#,_":X\E_&6B>(NIVPC%Y(>,!R>OPM+_HL\OD0C 2&']@K
M"V<L?2L[ 0L'##QYT0L3D?/E7\R+]$5>N7$(? C)N"R.)=!@.=&V<[0);GWO
MV0_$IJ,LF%5B06.FA9)8L ZRZN1:J%**VA@;#)2<@N6@>AS[4V' X&>E5"L1
M \L9L]M4>YKW5MSH6FJN58$DFJ&V?I"0!!(J!](G)=O3O-N"O8YIT2').53.
MN5UEVU.DLJO$OI5"KPZ[/BO=GB)-D6<;\RV24$-UH+:G?'NZP;C-^19)/*)=
MXK%2OCU%*@.1:YP3R4!4DX%;Y]N\H\). [:QH<)#$EZH'%Y/8Y8=#A4/<"LD
M7R2A@\JAL^N3%$U]5#A**9HIT8-JUTA5SS_R'E9-,R\B"2]4IT#J1QQD7XJ!
M;CC_9C![>Q&]8D#SL61 B(L87O7D3/B1^I8"0>N(2JZV<?N!);AP'7#5"8>\
MHV*Q8U-BL%"R"I>SZH<?IXP4]DT#/TM]%4(!2]3@?1XJ7F$-2HC;7M^(W.G:
MX;9+#3&#5XX,=U1(;;<3N<)J747-ZT^2 ]<AQ_8[D2NLXL(V%GY8X@)7Q,7>
M3BBOL,H5;'1$4@77*8GTZ^(\3OQ)EE>_AP,>9'<%Q"=:8S55D7G8):#PGJJB
M.ZRR*=W;V88S*"SAA,OAU.$B4V0V3'F4@"<V&(<\X"^^F.J[?XLMSL1/1[!*
MLI+<P?LLFBZQ6C0AZ*JY2G.*!UU394DD>\@O*9HNB5HT&3,5D1PB^ZF9+HE:
M,YG-DQPCOU/)=$E4?K6-%1.1]"*_<<5TN<&XS1436?GB:^\5TR51$0AMXYQ(
M!)(]54QW1%,Q84P,J9A(MI%RMCT^G??%LJV2:XE$$-EGC721]U:8')<JN9:H
MN!+-L.& BDA:D1U]W;1=KKT@:GW5-BXYR3E2I[[:/M=>$!5=QO+/EN"R=P>N
MZGNI"UNMH*#16,DMNPZWZH2OK3GL<UW7L#9MB2Y[ [K$%EINI"H$L2UY8I>G
M[-T&\;FMN4Y1.._,!TJME40SZ!H&2D+#WE&QM%T0G]OJ105J7'@K5Q7J<&/[
M(#[/^Z&5S)/0L&M^1[1]7&AJH)+IE@2RRPET$OR/O8-'/DK>1*W8%.7FX*!2
M>$@JV.54V&UXW-KJ702,R'IXW&N;8==P6<J6U+!W1(WMPN/6UM0_IO5')43H
MCB"R(3QNJ8H-LWD2&W1/V+BG*C8P0MADH<0&+<?&#Q;P07H,T_/\H-)]*(D-
MND]LW% 5&X@J5Z+NJ>;J@FAFN E")3;H+\'&#56Q 8TU()7<H/OAQ@U5N5%B
MW\IMN3V!XS[OJ#CAEF6HAZ@$!]U0NOAAG_MAI;T4E;"@^X3%/=54#H08#I6H
MA #])1#H4O6LS%A;.Q("SGX@T'74,R^S>1("3DT(?,JA4M=1[\LAO)XF^YI6
MAE7C2)8XGWAZ]G?/G;H;C-.>.V62UW4DBT,DF>CL\FBNTHE5UU'!:+P]XDC>
M.;_;K?*NHT5A<>%>;VA4]%;BTMG3\5S7T? 2*G>HKO-F;N$BW %9V\QHE3G*
M3:O6R@_=TA^\]D2P^&$, C82<M9!JB::_X9T_I#P:?;;MV>>)'R2O1PS3WB:
M-A"?CSA/%@_IS^F6O^0]_C]02P,$%     @ 2'2'4K5]+K%M%@  B[0  !D
M  !X;"]W;W)K<VAE971S+W-H965T-3(N>&ULO9UK;]O(DH;_"F&<#S/ *&95
M\SI( B3.9*Z1C$G.++"+_:#(C*TSLN@CR;D ^^.W)4ONDEG5U;SH?)FQ';'4
M+))OU]O=#_OYEWKU]_JFJC;1U]O%<OWB[&:SN?OQ_'P]NZENI^MG]5VUM/_R
MJ5[=3C?VU]7U^?IN54VO=@?=+LXQCK/SV^E\>?;R^>YOEZN7S^O[S6*^K"Y7
MT?K^]G:Z^O:Z6M1?7IS!V>$/?\ZO;S;;/YR_?'XWO:[>5YM_WEVN[&_GCU&N
MYK?5<CVOE]&J^O3B[!7\.#%@MD?L/O+7O/JR)C]'VW/Y6-=_;W_Y]>K%6;QM
M4K6H9IMMC*G]W^?JHEHLMJ%L0_Z]CWKV^*7; ^G/A^AO=V=OS^;C=%U=U(O_
MFE]M;EZ<%6?15?5I>K_8_%E_^:7:GU&ZC3>K%^O=?Z,O^\_&9]'L?KVI;_<'
MVQ;<SI</_Y]^W6>"'( @'(#[ S#T +,_P(0>D.P/2$(/2/<'I*$'9/L#LJ<'
M2%G*]P?DH=]0[ \H0@\H]P>4H0= ?+AR<? ACQ<[^&K#X7)#\/6&PP6'X"L.
MATL.P=<<#A?]X88_?[CC=X_+F^EF^O+YJOX2K;:?M_&V/^R>N=WQ]BF9+[?Z
M\'ZSLO\ZM\=M7H[K3169:!2]FOW[?KZ>;Y_9M?WU<E4MYO8;K69$E_>KV8U]
M!.T?Y[,J>K58U+/I[N&V^A2]OE_;F.MUM7Z(L:JNHN_>5)OI?+'^/OI'-%]&
M'V[J^_5T>;7^X>'W=_/%8OL]S\\W]A2V#3F?[9O[^J&Y*#;W\[,HSGZ(,,;X
MG^_?1-_]XWLFRH4_RF_WRV<1Q%J4-_XH;ZN/SR($+<I/_BBO[J]ME%U;H)2C
MO TX(\RU*#_[H[R;?MNGQ1?DEX"T &I1?@U)RRZY4,A1?FL1Y>*5%.7WD.2B
MUI8_ O(2JU'>*6V9VK:8AYL.Y"CC\"B>6W<2'$6XTN=6C1XE"1\E"7=A$R'L
MQ71]\T.TM+51_2F:V5]L#?&@*URZ'F)ENUC;8NCSRZ1(8O/\_#--1_-36&*<
M/OG8I/FQ+"\-/G[JZ'S,X_D8[_G\7-=77ZSB<:U_.#(E7YAF*>3YD^8S'T.3
ME?&3YC<_9O("\H)O?_+8_F3 ZY$TVL!=C^:GV.O1_)CG>J2/YY-ZS^>RJN\6
MU>?Z:_0_[ZK;C]7J?STW;?88-!LN26^RYNV80/SD<K[+FDE*P.3\V>>/#<W]
M#;7][ORJ6CUTX'?3;]./BXJ[D-XP6]ORX_IN.JM>G%E?LJY6GZNSEY$GD<5C
M^PJM?9OY\KI:;J(9;2K71&^D]DTL'YM8>ILXME=Y:WIL,^VEOIMOIHMH>O4O
M6ZY9X[191]^MJEDU_[Q-[/?1N2_'9>,*CQ+A[H;8572Q__X^E&MWNW)-S>(^
MW/%]%I>IT Y268+_2MZO5MO+.+6UX<:6?M77V>+^ZB%IBHCL(Q^KB-0@UZ^
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
M"(54=1+@"A3BRIN8CEX-"$,%"D35)RO8%-^L3%!27P)8@4)8>;/2TJP!P:A
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
M+AU=:W["R*'"R/7*Q<"ODD "T:$"T7'I:NL("#V'"CW7*TW,0(,XS$  .50
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
M<UM,@Y, <ERQ6MAKM;W UL_8\65*&/^$;9L;!9#5QJJR!9."DLOFS1[;.O0
M@]$[@+@%Q!\%#%O T!MME'E;<V99.M%J"]IE$YL;^-IX-+GATIWBC=6TR@EG
MTU_*(HS@*YPSKN&.B1IA@<S4&NFLK*&5.6J^8:[:<"F-U76SP&P?<SA'R[@P
M1P2XO9G#X<$1' "7\+M0M6$R-Y/0DEZW:YBUVLX:;?$[VGXR>0S#P1>(HWBP
M S[[.#QZ#0^I2EVIXJY4L><;O</WXZ'F]@DR):VFV[?34,.0> ;W 6W2DR@B
M[9N^[+=)XV2<=$FOQ T[<<.]XN9H^%HRBSDP Q>8K[E<]\X+_BZP7*+^MZ<0
MHVZOT:<+L9?!M:934[$,IP'U'H-Z@T$*NX[X\SRO+(X[B^.]%NFS@/]1TJ3;
M+_ET29./W*VW23ON5MCK%ZY7+Y@F;P8$K@@6'7^CXNBF_S6!595O(4MEJ2'Y
M84&_#-0N@=97BMI(&[BNU/V$TF=02P,$%     @ 2'2'4J1J?3_X 0  (00
M !D   !X;"]W;W)K<VAE971S+W-H965T-3@N>&ULC511:]LP$/XKA^A#"UUD
M.^E2BF-H$\8VZ A)LSTK]B46E25/DN/LWT^27>.Q!OIBW4GW?7??G>2T5?K5
ME(@6SI609D%*:^L'2DU>8L7,1-4HW<E!Z8I9Y^HC-;5&5@10)6@219]IQ;@D
M61KVUCI+56,%E[C68)JJ8OK/$PK5+DA,WC8V_%A:OT&SM&9'W*+=U6OM/#JP
M%+Q":;B2H/&P((_QPS+Q\2'@)\?6C&SP2O9*O7KG6[$@D2\(!>;6,S"WG'")
M0G@B5\;OGI,,*3UP;+^Q?PG:G98],[A4XA<O;+D@]P0*/+!&V(UJOV*OY\[S
MY4J8\(6VBYW/">2-L:KJP:Z"BLMN9>>^#R- /+L 2'I \E' M =,@]"NLB!K
MQ2S+4JU:T#[:L7DC]":@G1HN_12W5KM3[G V^Z$LPAU\@A?-"H3'/%>-M 8V
MF",_L;U N%ZA95P8>,&S;9BX<=&[[0JNKV[@"KB$9RZ$&XE)J745>5Z:]]F?
MNNS)A>S?F9S -+Z%)$KB=^#+C\.C?^'4]6%H1C(T(PE\LPM\.[EW4K 8J3>W
ML&RT1FG?4]?1W0<Z_UY.6329IO0TEO!_3#R9#3%=G70T0/]XGID^<FE X,&A
MHLG\CH#N+F3G6%6'F>Z5=3<DF*5[PZA]@#L_*#?7WO'79/@K9'\!4$L#!!0
M   ( $ATAU(Q ,BY60(  +$%   9    >&PO=V]R:W-H965T<R]S:&5E=#4Y
M+GAM;(U4[V_:,!#]5TY1/[02);^ =BA$HJ!IF[H) =T^F^0@5AV;V0YT__UL
M)V0,A:I?$I]][^6]<^Z2HY"OJD#4\%8RKB9>H?5^[/LJ*[ DJB_VR,W)5LB2
M:!/*G:_V$DGN0"7SHR 8^26AW$L3M[>0:2(JS2C'A015E261?YZ0B>/$"[W3
MQI+N"FTW_#39DQVN4+_L%])$?LN2TQ*YHH*#Q.W$FX;CV<#FNX2?%(_J; W6
MR4:(5QM\S2=>8 4APTQ;!F)>!YPA8Y;(R/C=<'KM)RWP?'UB_^R\&R\;HG F
MV"^:ZV+B/7J0XY943"_%\0LV?H:6+Q-,N2<<F]S @ZQ26I0-V"@H*:_?Y*VI
MPQD@'%P!1 T@^B@@;@"Q,UHK<[;F1),TD>((TF8;-KMPM7%HXX9R>XLK+<TI
M-3B=_A :80CWL)8D1YAFF:BX5K#$#.F!;!BV9_^V%-S.41/*U)TY?5G-X?;F
M#FZ <E@7HE*$YRKQM9%G/^)GC92G6DIT1<HWPOL0ASV(@BCL@,\^#@_^A_NF
M*&UEHK8RD>,;7.&K39-3063KOLM9335R5+9Q#FG\:1B/$O]P;J CZR&T7@\=
M.N-69_RNSF=4:@P+*0[4M9;I;,@DYE0#$TIAYTW4E,,S)?=1' <7>KNR@B#N
MUCMH]0[>U=OQB_6 ;#5*F#(S5 C/T)F8U2:>C8D>S"HID>L>K(4FK,O2H*.X
M47!Y!1U9PS!\O+#DGS64'6;?B=Q1KH#AUN""_H.IB:P'1!UHL7<]MA':=*Q;
M%F:FHK0)YGPK3)\U@6W;=DJG?P%02P,$%     @ 2'2'4H0[BU>: @  .@8
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
M^X&#GFO/EREAPA>Z/G<:$\A:8U4]@%T'-9?]RO;#.1P!QE<G /$ B#\+F R
M21#:=Q9D+9EE::)5!]IG.S9OA+,):*>&2S_%C=4NRAW.IK^51;B!+W O=RBM
MTB]POD3+N##P@'O;,G'AHH^;)9R?7< 9< D/E6H-D[E)J'4M>"*:#>7F?;GX
M1+F?3(Y@,KZ$.(K'[\ 7GX='_\.I$WY0'Q_4QX'OZ@3?/]%/3+0L7*PU&M0[
M-)?P3>9<EC!G@LD,WQ/;LT\#NW\ON]1UM3O6\U%&WS(]&IY_.+^8+KDT(+!P
MF&AT<TU ]Y>Q=ZQJPCRWRKK;$<S*O5_4/L'%"^5F.CC^BAS^".DK4$L#!!0
M   ( $ATAU)!]0 9<@,  ,L,   9    >&PO=V]R:W-H965T<R]S:&5E=#8T
M+GAM;*U774_;,!3]*U:T!Y V8CMIDZ"V$I2A,0V$8(R':0]NXS8621QLIX7]
M^MEI2$H^2H=X:>WDGNMS?:^/;T9K+AYD1*D"3TF<RK$5*94=V[:<1S0A\HAG
M--5O%EPD1.FI6-HR$Y2$!2B);0SAT$X(2ZW)J'AV+28CGJN8I?1: )DG"1'/
MIS3FZ[&%K)<'-VP9*?/ GHPRLJ2W5-UEUT+/[,I+R!*:2L93(.AB;)V@XRGR
M#:"P^,7H6FZ-@0EEQOF#F5R$8PL:1C2F<V5<$/VWHE,:Q\:3YO%8.K6J-0UP
M>_SB_;P(7@<S(Y).>7S/0A6-+=\"(5V0/%8W?/V-E@$-C+\YCV7Q"]:E+;3
M/)>*)R58,TA8NODG3^5&; &0VP/ )0#O"W!*@%,$NF%6A'5&%)F,!%\#8:RU
M-S,H]J9 ZVA8:M)XJX1^RS1.3:ZXHL '7\"UT*4AU#,@:0B^/N8LT\E2_2\.
MSJ@B+):'VN3N]@P<?#H$GP!+P<^(YU+;RI&M-$&SC#TOR9QNR. >,M])>@0<
M]!E@B%$'?+H_'+Z&VWI;JKW!U=[@PI_;XV_*I>H*8H,:%BAS3%83%[L8C^S5
M-M>VE>-['JRL7E%R*DK.3DHG\WF>Y#%1- 0DX4*QO\0<ARZ:&T^#;0+0<9P&
MS;85'D GZ*;I5C3=G32O:.?&N:VU$(9^T&#48>5X#NIF-*@8#=[(99+EBHJM
M"OY]29,9%7]V5,JP\CY\5Z4,VRGPW&$SX XKUW5Q=\!>1<G[L$KQVC7@(]RL
ME XKG9>>@O8KFOY.FN>Y2)G*!2WDY9P]F;'<)S=!M4+PKMP$[3)S [<1<Y>1
MTY,9!&O-A1^6F]+5*PK01PV>'58^&O;PW+H;T$Z>/ZB^(",>A^ BR01?47-N
M]DH.JC46O4]D2]BKB*#7#+MMY'E^3]BUQJ*/$UG4UD\7MK+3(;)!S\%!M<:B
MW2);*]E%*A6)8TWWGJD(3(NV@8K],E4K*'I+0GLR-6A7Z'#0/$E=5MCON6=0
M+;QHM_+^5Z[:0NMAO\FS;82ATT.S%F/TAAI+J5OR/ WU#33E.ETBW[2Q^V2H
MUE*T6TQ[,^2W>I$@: 7>-O)Q,S_V5J=IVOQ+(I8LE2"F"XV"1Y[>-['IG#<3
MQ;.B^9QQI6NR&$;Z:X,*8Z#?+[AN0,N)Z6>K[Y?)/U!+ P04    " !(=(=2
MS7/EKI$"   K"   &0   'AL+W=O<FMS:&5E=',O<VAE970V-2YX;6RUEEUO
MFS 4AO^*A7K12FDA?"8506K356NU=54_-NW2"2?!JK&9;4JV7S\;*$H%3-6D
MW 0;G_><YSV)[<05%R\R U!HEU,F%U:F5'%NVW*=08[E&2^ Z94-%SE6>BJV
MMBP$X+06Y=1V'2>T<TR8E<3UNWN1Q+Q4E#"X%TB6>8[%[TN@O%I84^OMQ0/9
M9LJ\L).XP%MX!/5<W L]L[LL*<F!2<(9$K!96!?3\^7,Q-<!WPE4<F^,C),5
MYR]F<I,N+,<  86U,AFP?KS"$B@UB33&KS:GU94TPOWQ6_;KVKOVLL(2EIS^
M(*G*%M;,0BEL<$G5 Z\^0^LG,/G6G,KZ$U5-;.18:%U*Q?-6K ERPIHGWK5]
MV!-,_1&!VPK<CPJ\5N#51ANRVM855CB)!:^0,-$ZFQG4O:G5V@UAYEM\5$*O
M$JU3R1U7@.;H%-TPA=F6K"B@"RE!271\!0H3*M$3[%2)Z8F.>GZ\0L=')^@(
M$8:>,EY*S%(9VTJCF(3VNBU[V91U1\K>8G:&O.D$N8X['9 O/RYWWLMMW8"N
M"V[7!;?.YX_DNR:,*#C]HG]1:;\3$W0':H(^L92P+;K$%+,U#'ENBH1U$;-]
M7A/7F\_G;FR_[GL;" O">1!V8>\\>)T'[_\]:/I=H7>.7KK(N5#D#S:[:()^
M A;H&QNTT]0+]C@#;^XXPYA^A^D?"O.IXD.8?@_3#_TQS*### Z&F0D8[&?0
M _5\;PPT[$##0X%>\U(,<89]SFDPQAEUG-'!.+5FB#/J<;J1.\8YZSAG!^#$
M&P7BW[2SWJ[WPZA':^\=Y>8:_8K%EC")*&RTSCF+M%W17$W-1/&B/MU77.F[
MHAYF^C8'80+T^H;K$[Z=F NC^W^0_ 502P,$%     @ 2'2'4GGP[/16 P
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
MIFU$<T4U$\4KV^5;KO2=88>%OM5!F "]GW/=Z>W$7!S=_T3R#U!+ P04
M" !(=(=2L %<H+T#  !,#@  &0   'AL+W=O<FMS:&5E=',O<VAE970V.2YX
M;6S%5VUO&CD0_BNC54]*),J^ "&I "G 14V57! DK:I3/Q@8P.JNO6=[@4CW
MXV^\;!9R 1^-TNL7UB_SC)]Y/&;LUDJJ[WJ!:&"=Q$*WO84QZ0??UY,%)DQ7
M98J"9F92)<Q05\U]G2IDTQR4Q'X4!&=^PKCP.JU\;* Z+9F9F L<*-!9DC#U
MV,58KMI>Z#T-#/E\8>R WVFE;(XC- _I0%'/+[U,>8)"<RE X:SM788?^F'3
M G*+SQQ7>J<--I2QE-]MYWK:]@++"&.<&.N"T6>)/8QCZXEX_%4X]<HU+7"W
M_>3]*@^>@ADSC3T9?^%3LVA[YQY,<<:RV SEZB,6 36LOXF,=?X+J\(V\&"2
M:2.3 DP,$BXV7[8NA-@!A/4#@*@ 1,<":@6@=BR@7@#JN3*;4'(=^LRP3DO)
M%2AK3=YL(Q<S1U/X7-A]'QE%LYQPIO.'- AA!._A1HKY>X,J@3Z.#9STT3 >
M:[C'M<E8?$HF#Z,^G+P[A7? !=PO9*:9F.J6;XB(=>=/BD6[FT6C XM^8J(*
M4:,"41!>[('WCH#70@N/PCWP_O'PX#G<)_5*":-2PBCW5S_@[P8-R:9!SJ"G
M<,H-W&5&&Y*&BWD%+A.9";,ORHW;L]RM/9_+#IW6EK_<#<5M\XQOK>1;<_(=
MXE+&2^(&=RDJ9FRK('[%)CSFYA'^O,5DC.H;_ TC%%PJ^DPR,CIHZ1"R7A*K
MNX6D_HZ*3TM4X):M>9(ET)6*7.9\64JSYG%?[M5?2%9K!,&_E>UMS!J'S9[%
MT"AC:+AC*$_1\V@J<"\-B_>E0>,%WP,<SDH.9[]@@\GR:1^.V/-FR;7Y?^QY
M\X6&^5X>$/*\)'?^(^1**AJ,A%&6IE(19:FHN CX?3U9,#%'H(,/UX)R +6!
M(:/_UX\XG=L(WO14791!7#B#R/_-KX4V*J-Z;1/19N?)5V3J=)^4;F\->"2@
M=O *@VWI"9R^?DKBA3N5+WQ=ZCV(3%L^1;Y5H">3A!NK'EPAP@#5A-IT+=I;
M^MRK!M5Z\)N+_[;LA.ZZ\WKY:*C'!)LR(/S#" :*KG)YJE:@>UFQHS?7W;OA
M47IORT[HKCLO$K'+--<PRN^K0'? STQQ-HXW3/9*ZUX@JC;<TFX+4>BN1#\@
M+1='9^:VAH3_441^4F:Z5PVJD5N^;?T)W07H]?*]:69N:U#H+D)OD)GN!8)J
ML%]:?^?F;M]9MTQ1I= 0XXP<!=4F;9G:/%TV'2/3_#(_EH:>!GES021160.:
MGTFZT!<=^SXH'Y"=?P!02P,$%     @ 2'2'4I)D(+CM 0  2@0  !D   !X
M;"]W;W)K<VAE971S+W-H965T-S N>&ULG53;;M- $/V5T3ZU4HACIX&JLBV1
M5@A0 U'*10CQL$DF\:I[,;MKG/X]LVO7"A()$B_>N9TS9^Q9YZVQCZY"]'!0
M4KN"5=[7-TGB-A4J[L:F1DV9G;&*>W+M/G&U1;Z-("63;#)YF2@N-"OS&%O:
M,C>-ET+CTH)KE.+V:8[2M 5+V7-@)?:5#X&DS&N^QP?TG^NE)2\96+9"H7;"
M:+"X*]CK]&8^#?6QX(O UAW9$"99&_,8G'?;@DV"()2X\8&!T_$+;U'*0$0R
M?O:<;&@9@,?V,_N;.#O-LN8.;XW\*K:^*M@U@RWN>"/]RK1OL9]G%O@V1KKX
MA+:KG5TQV#3.&]6#28$2NCOYH7\/1X#T%"#K 5G4W36**N^XYV5N30LV5!-;
M,.*H$4WBA X?Y<%;R@K"^?*#\0CI%%[ /=)P#B[NT',A'7S"@V^XO*34@A^$
M:A1\7Z!:H_V1)YY:!X)DT[>9=VVR$VW><SV&:3J";)*E?\(34CS(S@;96>2[
M.L%WC\XACN!CC99[H?>=_!&L,&SB$* IK(*+;\CMY=]4G^]R#4\$=&?T3@>]
MT__5J['E\E\ZS[//3NM,CE8CW+(%MWNA'4C<$=5D_&K&P':;VSG>U'%;UL;3
M[D6SHLN.-A10?F=H8WHG+.#P^RA_ U!+ P04    " !(=(=29O&XH4H#  "0
M"0  &0   'AL+W=O<FMS:&5E=',O<VAE970W,2YX;6R55FUOTS 0_BM6!-(F
MP?+6I UJ*[$.!(B7:6,@/KK)M;%P[&*[Z_;O.3M9UG5>&%_BE]P]?IZS?>?I
M3JK?N@8PY*;A0L^"VIC-FS#490T-U2=R P+_K*1JJ,&A6H=ZHX!6SJGA81)%
M>=A0)H+YU,V=J_E4;@UG LX5T=NFH>KV%+C<S8(XN)NX8.O:V(EP/MW0-5R"
MN=J<*QR%/4K%&A":24$4K&;!V_C-HK#VSN '@YW>ZQ.K9"GE;SOX6,V"R!("
M#J6Q"!2;:U@ YQ8(:?SI,(-^2>NXW[]#?^^THY8EU;"0_">K3#T+)@&I8$6W
MW%S(W0?H]&06KY1<NR_9=;910,JM-K+IG)%!PT3;TILN#GL.\?@)AZ1S2)[K
MD'8.J1/:,G.RSJBA\ZF2.Z*L-:+9CHN-\T8U3-A=O#0*_S+T,_.OT@")4_*:
M? :,AL;.0C8;*4 83>2*?-N HH:)=6M WMW@ <+VZ P,95P?H\?5Y1DY>G%,
M7A FR/=:;C45E9Z&!@G:9<*R(W/:DDF>(!,GY(L4IM;DG:B@>@@0HK)>7G(G
M[S091/Q$Q0E)XU<DB9+80VCQ?/=H@$[:1SMU>*,G\.Z#R5TP2ZF-+TPM2NY0
M[#V\GH^R @E<[U/W&!51TAL](#CJ"8X&"5[64IG7!E3S#X8M3+:W>+:W=DOP
ML<TDS_W\LIY?-LCONS24$_G,,&8>DL4A2X_1.)_X:>8]S?R9^UQ271/,GBM,
MEYJLE&P.V6N\-"7?XGFWMZ?!J:T"S)/&WKY6'V=TR3@S#+R7*G^D8#1)XP.9
M'J,XB_PRQ[W,\:#,KYBE+[Y=$:HUV&RQQ(P@6AUP4]94K(%@H>E4R"5G:VJ3
MMU?%^-%Q3M)T?*#BL5$^2@N_BDFO8C*HXJ=+]4B;7N/&(&4,/^JX/U[N.AS=
M E68[8Y^87OL$S"\2DH< $F*A%3TUA>"Q3#"J$.(H\*#\$!ZT4LO_D]ZQ70I
MMWCV\(1BCG_I%3J,F9QDT4N?NG^Y30[=6DGA7G%K0*U=S=?$T6P+03_;/RO>
MNFIZ,'^*SXWV=7 /T[Y5OE"U9D+C=J\0,CH9XS51;?UO!T9N7 E=2H,%V75K
M?#*!L@;X?R6QC'8#NT#_")O_!5!+ P04    " !(=(=2S<)NQ]\"  #2"
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
M,VG_HUUAZSDHRJ3B<0'6#&*:Y+]D7QQ$!8## P"_ /BO =T#@$X!Z)P:H5L
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
M!_+WE63')=R&Q[R +GO.[IZ5M!YLN'B6*:*";9XQ.712I8I;UY5QBCF1-[Q
MIG=67.1$Z:E8N[(02!(+RC,W\+S(S0EESFA@U^9B-."ERBC#N0!9YCD1KQ/,
M^&;H^,[;P@-=I\HLN*-!0=:X0/54S(6>N0U+0G-DDG(& E=#9^S?3GO&WAK\
MI+B1.V,PF2PY?S:3K\G0\4Q F&&L# /1?R]XAUEFB'08?VM.IW%I@+OC-_;/
M-G>=RY)(O./9+YJH=.CT'$AP1<I,/?#-%ZSSZ1B^F&?2_L*FMO4<B$NI>%Z#
M=00Y9=4_V=8Z[ #\Z 0@J '!/B \ 6C7@/:E@+ &A%:9*A6KPY0H,AH(O@%A
MK#6;&5@Q+5JG3YDI^T()O4LU3HV^<X7@1W -]T0PRM82YBA@D1*!\&F*BM!,
MPB-N54FR*VTFS8X<N$H[-Q1N7#N:5(Z"$X[\ &:<J53"/4LP>4_@ZJB;T(.W
MT"?!6<9OA-U VV]!X 7^D8#N+H=[1^#3B^%^_TPV[:80;<L7GN"SBE^;(YS
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
M.%6I?@W)?1@I'J!BME:**K)Z UL%=);>.O>H'2T>V[LF+C%8NS3$!17 S53
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
MX9*2A')U@_Q]P9C8G"B ;K=Q]@]02P,$%     @ 2'2'4LV$MK3Y P  N \
M !D   !X;"]W;W)K<VAE971S+W-H965T.#,N>&ULS5?;;N,V$/T50NC#+A!+
M(G5?V 8<N]L+D%UC@V8?BC[0%FT+D425I.W-WY>D%%G6+4:!H,U#+%%GAN?,
M#"\S/5/VS ^$"/ C2W,^,PY"%)\LBV\/),/<I 7)Y9<=91D6\I7M+5XP@F-M
ME*46LFW?RG"2&_.I'ENS^90>19KD9,T /V899B_W)*7GF0&-UX%OR?X@U( U
MGQ9X3QZ)^*-8,_EFU5[B)",Y3V@.&-G-C 7\M(*>,M"(IX2<>>,9*"D;2I_5
MRV_QS+ 5(Y*2K5 NL/PYD25)4^5)\OB[<FK4<RK#YO.K]\]:O!2SP9PL:?H]
MB<5A9H0&B,D.'U/QC9Y_)94@37!+4Z[_@W.%M0VP/7)!L\I8,LB2O/S%/ZI
M- R@/V" *@/4-G '#)S*P+G5P*T,7!V94HJ.PPH+/)\R>@9,H:4W]:"#J:VE
M_"17>7\43'Y-I)V8?Z&" !B "7@4=/L\43&,P9)FLK XUJE9ISCG"E"6!J [
M\(7F)\*%1#X>,"/@PXH(G*3\HX3]!"S U2B?6D(R5/-8VXK-?<D&#;"!"#S0
M7!PX^#F/27SMP)+2:GWH5=\]&O7X.\Y-X, [@&P$>P@M;S>W>\Q7-YO#:$2-
M4V?+T?[< 7\ZVGTY6C"&\SV1"U* S0MHXM;X10\OSIC%=^!KH0SX'?A%6@@.
M$IE@PA(:JQ'*.?@@1\K\?>Q+8$G0TP35IG*:.R$,/:GNU QK#\P/8.!<PU9=
M& H0=-T:=A4FMPZ3.QHF+8U(1=_ULB?Q!"Q.A,E]K%0]D4N%@,\X8> )IT<"
M"L)>*UFJCVF:8L;UJ(Y$;R!*"D&#.K1-V(Y#%Q6:40NTZH("$_:'P*M#X+U=
M*0>:QH1-%D7!Z$DM5K7$JPK0RQK\^4"R#6%_C=2F7\_HC\_8<,[!UZ/@ N=Q
MDN_?JBB_4P.N'?E>JU2679B#/ 3#_C@%->M@E/5[5DC0DWL;1<V_EL:NA6\.
M*0QKA>'_?<\(;]LS>F#7>\:5_JC6'_WWFT%TTV;015UM!E?RH'TYP>U1@4_E
M2?Q&#BHGS>A.D.\C)VR1[ 5Z$?*'B#:N&O &HN^;B(K"=8P[B>A!^6;D#PA$
M%X%H5*"\B>Y(<DLR4$^,';_+LQ?G#J;B<H^ XQ>)FND[9\/IQ-DUPZ"MLHL*
MS$&-ETL '+\%_.L#J?+;C+IG0]_SVKR[N+Z3:]6#&SNZX.6,A^.'_+NFSNLD
M)3(]U Y!%_7&&;?J,>DYY*Q&2Y,1MM>M(0=;>LQ%>?NO1^OV<Z&;KM;XO6I+
M=:MT<5/VM ^8[1-9&2G929>V&4ABK&P3RQ=!"]TX;:B0;9A^/,C6FC %D-]W
M5#9/U8N:H&[6Y_\ 4$L#!!0    ( $ATAU*!/L\T+P4  !86   9    >&PO
M=V]R:W-H965T<R]S:&5E=#@T+GAM;+U8;6_B.!#^*Q;:#ZW436(G(:&B2&W9
MO=N3NH>*VM7I=!]<8B!J$G.V@?;?GYV$O!!CZ&Y[7R Q,^/GF?&\X.&6LF>^
M)$2 ES3)^%5O*<3JTK;Y;$E2S"VZ(IG\94Y9BH5\90N;KQC!4:Z4)C9RG+Z=
MXCCKC8;YVH2-AG0MDC@C$P;X.DTQ>[TA"=U>]6!OMW ?+Y9"+=BCX0HOR)2(
MA]6$R3>[LA+%*<EX3#/ R/RJ=PTOQ\A7"KG$8TRVO/$,%)4G2I_5R[?HJN<H
M1"0A,Z%,8/FU(;<D290EB>/?TFBOVE,I-I]WUK_FY"69)\S)+4U^Q)%87O7"
M'HC('*\3<4^WOY.24 YP1A.>?X)M*>OTP&S-!4U+98D@C;/B&[^4CF@HP."
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
M:GK*"6>GWY5%B,;P&6YDHG*$>_:$!H[F:!D7!N[QR19,'-,+#\LY''TZAD_
M)=QR(6C?S"2PI,)Q!4FUXJQ<,3ZP8A3#K9)V8^!:IIB^)@A(?AU#O(]A%G<R
M?F.R#X/H!.(PCEH$77T<'K; YQ^&1^<=T0SJ'1EXON$!OFH?9D@?=;4=)[!
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
M+1R$J30">+\6<-1I;\P'NJ/U_!]02P,$%     @ 2'2'4D<<7'2!!0  J"H
M !D   !X;"]W;W)K<VAE971S+W-H965T.3(N>&ULO9I=;^)&%(;_R@CM12*U
MP9XO3 1()-FJ635ME.RVJJI>3& (UOJ#VD-(I/[XC@WQ<=9X=G"'W"0V>([/
M>SR\S[$]HTV:?<V74BKT'$=)/NXME5J=]_OY;"ECD9^E*YGH;Q9I%@NE=[/'
M?K[*I)B7@^*HCSV/]V,1)KW)J/SL-IN,TK6*PD3>9BA?Q['(7BYDE&[&/;_W
M^L%=^+A4Q0?]R6@E'N6]5%]6MYG>ZU=1YF$LDSQ,$Y3)Q;@W]<\O!EXQH#SB
M]U!N\MHV*J0\I.G78N=Z/NYY148RDC-5A!#ZWY.\E%%41-)Y_+,+VJO.60RL
M;[]&_ZD4K\4\B%Q>IM$?X5PMQ[V@A^9R(=:1NDLW/\N=(%;$FZ517OY%F]VQ
M7@_-UKE*X]U@G4$<)MO_XGE7B-H [+<,P+L!N,Q[>Z(RRRNAQ&24I1N4%4?K
M:,5&*;4<K9,+D^*JW*M,?QOJ<6KR:ZHD\@/T([I.9FDLT6?Q+/,WN^B7-,_1
MI<BR%ST+-B*;Y^CC\RK,1%E7?5H]X.1**A%&^2GZ@,($?5ZFZUPD\WS45SK+
MXES]V2ZCBVU&N"6C3R(Y0\3_ 6$/^U_NK]#)A].W4?I:8R445T)Q&9:VA/UM
M)8N$DT<4%7)F=3G[DMQ&XV6T8FH_3;@W'))1_VE/$J1*@AB3**KYIQ19H0VC
MOVYD_""SOPWJ:!68.E6WC<9JZG# ]FMC50K,6ANQT<:KP-RI-M[01H9TO[9!
ME<+ 6ANUT194@0.GVH+F=</^?FW#*H6AM39FH\WWP%L\I^IVX>KR6(LZOV9P
MOK4^;J4/+,5WZRGF< 6 S_.5F,EQ3Q,VE]F3[$V0*5/P'=]L/-.%DADZO!3@
M/[Y; _*;#L0]C^*6JPTFY)M=Z$I#*U?AK-0Z7:MEFH7JQ4HK^)'OUI#\IB/A
M8#!HD0J>Y)M-Z3M2T;\=KC?XEN_6N,SA.DQ]L#??[&^7(A%S@>[DDTS6$DT?
M93)[4R7=W>G>+3E\QF P0NS6"''3"/F0#_?/& Q6B,U6^#]+\<V,LFI@<*T_
M<]R@.393#&:*S6;JMHQ6O1(&(\9NC=@<KD,9P:JQV:K=EM&J+</@\=BMQYO#
M=2@C8 ";,>"VC%8=( 9,8+>8,(?K4$; !#XJ)KK0E@ _B%M^F,,=7D8"B"''
M1DS'5I4 :(A;T.S"V<&8U!X%F"ERG6B=B8BJ6MWKZQ#.)#JYOKL_K5?DL$;/
M"LL$>$+<\L0<KL/4 YX0,T^.55 K0!,@"W%+%K+G>4;+W -F$#,SCE4J*P@3
MH =Q2P_2?#SB\Y9: 1B(&0S'JI45:2D@@KI%!+5_UD+!_:G9_5W6JB,'*'"
MNN4 ;7( !U[+;3P%#E S!S[>?)S6G[;O+4;G>U1:>X+L^!%R\PD.#8C?-H?
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
MU'/?K0SD:BEM_>6ULVU#O/)]8&M^2(VR[FNO-'67O69ZSNF""9P191Q^/@M
MUYVK#JQ:^+L\598Z@Q^6U.Q1NP1:GRFZSTW@-FC_/@;_ %!+ P04    " !(
M=(=2P$;_EV4"  "Y!0  &0   'AL+W=O<FMS:&5E=',O<VAE970Y-2YX;6RM
M5&UKVS 0_BN'Z:"%-';<]!7'T*0;VR!;:-KMP]@'Q3['HK+D27*2_ON=%-?+
M(.D8](M])]T]]]PCG9*UTD^F1+2PJ80THZ"TMKX)0Y.56#'35S5*VBF4KI@E
M5R]#4VMDN4^J1!A'T458,2Z#-/%K,YTFJK&"2YQI,$U5,?T\1J'6HV 0O"S<
M\V5IW4*8)C5;XASM8SW3Y(4=2LXKE(8K"1J+47 [N!D/7;P/^,9Q;79L<)TL
ME'IRSJ=\%$2.$ K,K$-@]%OA!(5P0$3C5XL9="5=XJ[]@O[!]TZ]+)C!B1+?
M>6[+47 50(X%:X2]5^N/V/9S[O R)8S_PKJ-C0+(&F-5U283@XK+[9]M6AUV
M$N+!@82X38@][VTAS_*.698F6JU!NVA"<X9OU6<3.2[=H<RMIEU.>3;]HBS"
MX!I.8:*DU202C)E@,D/3@QEJ?^SDP=>%X$OFE#3 9/XG?**,-1##\1U:QH6!
M!]S8AHD3PKS'%<H&>V2X"\+E\@!F#]YO:CHHS.&!5RY.%3"G+5.P;!LPMTQ;
MH"81?MQNN/EY W$4#TZC^#0:P!%P"5,NA".8A):D<0V&62O#>"M#?$"&STSV
MX6S0\Y"/\SLX/CKY&R4D83MUXT[=V,,.#\#^1_^WE6JDW<=\6^+*EW SMDKC
MZ\O^11*N]C [ZYB=O14S6L]06AK1?>Q>+W,5]:/HW2M*#CN^P[?B^\^;1(E<
MY7 \I2M<GNQKZG4N,3PCTV9?5^'.)+I';<KTDM/$""P(*NI?G@>@MP_%UK&J
M]L.Y4)9&W9LEO:VH70#M%XH&M'7<O'>O=?H;4$L#!!0    ( $ATAU*VVM Z
M$ 0   $-   9    >&PO=V]R:W-H965T<R]S:&5E=#DV+GAM;*57;6_;-A#^
M*X31#RT01Z+>+!>.@=CIL!;K&B3M]IF6SC91B?1(VD[WZW>D9-FQ7E!T0!"+
MU#UWSQUY+YH=I?JNMP"&O)2%T'>CK3&[]YZGLRV43-_*'0A\LY:J9 :7:N/I
MG0*6.U!9>('O)U[)N!C-9V[O4<UG<F\*+N!1$;TO2Z9^+*"0Q[L1'9TVGOAF
M:^R&-Y_MV :>P7S;/2I<>8V6G)<@-)>"*%C?C>[I^R6-+<!)_,7AJ"^>B75E
M)>5WN_B8WXU\RP@*R(Q5P?#G $LH"JL)>?Q3*QTU-BWP\OFD_3?G/#JS8AJ6
MLOB;YV9[-TI')(<UVQ?F21Y_A]HA1S"3A7;_R;&6]4<DVVLCRQJ,#$HNJE_V
M4@?B D"3'D!0 X)K0-0#"&M Z!RMF#FW'IAA\YF21Z*L-&JS#RXV#HW><&&/
M\=DH?,L19^9_2@.$3LF8+*4P"J-*%JQ@(@-]0QY!N8N"*_)E5? -LZ'7A(G\
M++Z4VFB+WS*Q 4VX( ^P!J4@)T]P +&'UX![K0$1;Q_ ,%[H=XC]]OQ WKYY
M1]Y8]->MW&M$Z)EGT$/+T\MJ;Q:5-T&/-S0@G]',5I,/(H?\M0(/0]/$)SC%
M9Q$,:OS$Q"T)Z0T)_(!V$%K^/-P?H!,VQQ4Z?5&/OOILNB)3 1,'M,E[F$>!
MGX0S[W!)MRT5QOZ4-E*O6$4-JVB0U1-D<B.XRTNY)EA/#AS/L/AA$ZJZ":JZ
M"5W$*]WQ!:5Q.$FC:^9=8GZ<^MW4XX9Z/$B]NJJLL+P'.,8MXU$2ILD5Q;94
M.(G\M)MATC!,!AE^%!G69XV9M5:R)*N]1@&M22;+%1=51MX0 ::+=])F-+TB
MW1:)XY[[,&DH3P8I?UBOL4K;D);R %CTC2L+6$NPJ@H"+YFK%5V$)RTV270=
MYK;,./(GW933AG+ZJXF5M@-$@XN4J4BUI5ZGWRM6TX;5=)#5<H_)(SI/=MJV
M-TTGZ16K#BE*HQY6U#\W#7^0UQ]2;,8&5-E9HOV641K1/IL7C8K^X@DM:^2E
MQ90&/0:#L\%@T.!7Q83&ZJ")D01;5PY8(3+@![8J3MF8G9H:<TVM,QQ!^[K&
MK;K<)15->XH;/;<+.MPOSL6#X1_RUSC>V,3,H<#QR59F>XRDX!F.9BBFJE+^
M+[Y@^E012;Y77&R(V0+9@>(R=P7'ZF&EW-OT-G6PG,:.<'5&)FSY/$E;@>D0
MZNM7]-RPZ'#'^A\5BK8;47!=H3IDQDD/YW.GHL.M:J!$U<C+MD[#N!7*#BG:
M*IS>Q3!9@MJX&=NV&SSG:FYJ=ILY_MY-KU?["SO?NR'UK*;Z./C,U(;C'%G
M&E7ZMQ,DIJIYNUH8N7,CZTH:'(#=XQ:_44!9 7R_ECBVU@MKH/GJF?\'4$L#
M!!0    ( $ATAU+8Y&UWM (  *\'   9    >&PO=V]R:W-H965T<R]S:&5E
M=#DW+GAM;*U5VV[:0!#]E965AT1*8S#@M!%8"I>HK42+<FD?JCXL]H!76>^Z
MNVN@?]_9M7%(8MQ4Z@O>RYPS<P[VS' KU:-. 0S995SHD9<:DU_YOHY3R*B^
MD#D(O%E)E5&#6[7V=:Z )@Z4<3_H=$(_HTQXT="=+50TE(7A3,!"$5UD&56_
MQ\#E=N1UO?W!+5NGQA[XT3"G:[@#\Y O%.[\FB5A&0C-I" *5B/ONGLU"VV\
M"_C&8*L/UL0J64KY:#>?DI'7L04!A]A8!HJ/#4R <TN$9?RJ.+TZI04>KO?L
M-TX[:EE2#1/)O[/$I"/OO4<26-&"FUNY_0B5GH'EBR77[I=LR]CPTB-QH8W,
M*C!6D#%1/NFN\N$ @#S-@* "!"\!X1% KP+T7@+Z1P#]"M!_*V!0 9QTO]3N
MC)M20Z.ADENB;#2RV85SWZ'1+R;L>W)G%-XRQ)GHBS1 @@YY1[Z:%!29I%2M
M09/3*1C*N";WL#,%Y6<8\7 W):<G9^2$,$'N4UEH*A(]] W68=G\N,HY+G,&
M1W+VR%P*DVHR$PDD#?A).[X;M!#X:$#M0K!W81RT,GXN^ 7I=<_1B:#35-!?
MX%34\&X#?/IV>%/VV9OAW0\M9O3J5Z+G^/I'^&Y!&U7$IE!,K/<OQ#FYEX;R
M)F]*MM"QV;:TB8)>!W5L#AUH36F;X97.:0PC#[N=!K4!+R)-5C0D>TKU3&Z_
MEMMOE7O#=$RY^^O(<^D+3@7Y,8=L">IGB[&#.M/@?QH['K0;^ZR&L*XA_(<:
M\/M%S9P:2,A$:G-.9KL<6WBUQ3L[:C"RZ7\/7Y77?56=?]"9,D"]=B1H$LM"
MF/+SK$_KJ7/MFNV+\PE.HW)X/-&4HVR.-C*A"8<54G8N+M$V58Z'<F-D[OK?
M4AKLIFZ9XD0%90/P?B6Q!U8;FZ">T=$?4$L#!!0    ( $ATAU*NFZFU]P(
M !<(   9    >&PO=V]R:W-H965T<R]S:&5E=#DX+GAM;(U6VT[C,!#]%2OB
M 20@UX86M95HRVI9B8LH[#Z;9-IX<>Q@.RW[]SM.0BAM6O'2>)PYQW/&DYD.
MUU*]Z@S D/><"SUR,F.*2]?5208YU>>R (%O%E+EU*"IEJXN%-"T N7<#3PO
M=G/*A#,>5GL/:CR4I>%,P(,BNLQSJOY-@,OUR/&=CXU'MLR,W7#'PX(N80[F
MN7A0:+DM2\IR$)I)010L1LZ5?SF+K7_E\)O!6F^LB57R(N6K-6[2D>/9@(!#
M8BP#Q<<*IL"Y)<(PWAI.ISW2 C?7'^P_*NVHY85JF$K^AZ4F&SE]AZ2PH"4W
MCW+]$QH]/<N72*ZK7[)N?#V')*4V,F_ &$'.1/VD[TT>-@!^O <0-(!@&Q#M
M 80-(/PN(&H 49696DJ5AQDU=#Q4<DV4]48VNZB26:%1/A/VVN=&X5N&.#.^
MDP9(X)$S<F\R4&2:4;4$O6/?B(27*:2$"3*50DO.4FK0GAM\8!T83>2"W!>@
MJ+U038YG8"CC^@2YGN<S<GQT0HXL_"F3I:8BU4/7H (;AYLTT4[J:(,]T?H!
MN97"9)I<"PSF*X&+TEO]P8?^27"0\1<5YR3T3S$'@=\1T/3[<*\#/OLVW!\<
M4!.VMQE6?-$>OJODK62:V0LX4\"K"TJD-IVIKJGBBLIVA]78'_0Q!ZM-^;M.
M8=2[^.HTZW#R^Y].7Z1$K93HH!0L,L/$$@L+%6"729O"(C3]BY]%57%=JFK6
MWD8L9_X@BK=D[7J%D;>E:M>G-_"[1?5:4;V#HAY!&U4FIE0HC12<BDX-O9V3
M@]#;"F]Z\"0[+2YU01,8.3@.-*@5.&/25:$=AWG=*N-697Q09=TY[J20=3=
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
M5=J *</-VV(OFV+1*\5"!*XY4Z4$:U:0XJ6 JYUW]M&3_4LTJ?@%LPO@PS\
M\A <*6CU=KHW0L_>3(?IA!N_6TS?Z@6OZ+U8E7:UQE)N5"*K8C:&QX4?)%$4
MS-S'OO<1& KC%+Z$9><P%(<P?H:]\!)T7H))+P\W5_?K#&SNE_?KS40V8:<7
MODLVC4K8=P,A\M$@FQ&8AQ(XB# [A\$HA# <SR;JO$237M;7ZR7X=DWJ+1'?
M)[*).[WX7;*)S]RD 8S\033GJ 2%:31(9@3E>6DP'DS2&4DFC:R6-\ML.9%(
MV@FE[Y)(>OX9I'Z2#!(90<6^-_Q6SE$P@5$\G@CTGC=X;]+*4E(,;G%.=S1_
MRT<#>ZT#ODM(K4Q_AX ZI,$^LAJ%>7$\B&D,!N-T^)=R>SU1]Z.]/5M(D/,C
M4TU_Z&:[\\O2=NW!_*4YU]A>^RS3'(JNL=A3)D%%=EK2NXCUVHGFG-$,%#_8
MSKOE2C=%>UOJLQD1!J"?[[CNONW O* [[2U^ U!+ P04    " !(=(=2!#6*
M -\"  "P"   &@   'AL+W=O<FMS:&5E=',O<VAE970Q,#,N>&ULG59=;]HP
M%/TK5M2'5MJ:Q/FN *G IK5:-U3:[6':@R$7$C6QF6V@_?>SG32E(2#4%["=
M<X[//4YRT]LR_B0R (F>RX**OI5)N;JR;3'/H"3BDJV JBL+QDLBU90O;;'B
M0%)#*@L;.TYHER2GUJ!GUB9\T&-K6>04)AR)=5D2_C*$@FW[EFN]+MSGRTSJ
M!7O06Y$E3$$^KB9<S>Q&)<U+H")G%'%8]*UK]VJ<:+P!_,IA*W;&2%<R8^Q)
M3V[2ON5H0U# 7&H%HOXV,(*BT$+*QK]:TVJVU,3=\:OZ5U.[JF5&!(Q8\3M/
M9=:W8@NEL"#K0MZS[3>HZPFTWIP5PORB;8UU+#1?"\G*FJP<E#FM_LESG<,.
MP0T/$'!-P&V"?X#@U03O5()?$WR33%6*R6%,)!GT.-LBKM%*30],F(:MRL^I
M/O:IY.IJKGAR\(-)0!BCSV@*2W6<$E)T0ZO;29_+[OH];("N <U>FN'#RPK0
M^1@DR0MQH="/TS$Z/[M 9RBGZ"%C:T%H*GJV5%[UCO:\]C6L?.$#OER,[AB5
MF4!?: KI>P%;%=E4BE\K'>*CBK>$7B+/_82P@]T.0Z/3Z4X'?7PRW4V.5.,U
MY^89/?^ 7GT G<E6S- P]6._&7A^'(9^S][LUML!PT&4N.]AXWT8C@(W>H.]
M\^\W_OVC_J? -_D<T)\[*&? _QZ))&@D@P]'4C&#W5J=)/):M8[V83CVPZ"5
MW+@#YKN![W5'$C;^PZ/^)YPM0.CW*2E0G8] ZO%!/V4&_)2HHF:KZ,-11?M1
M>7&4M)+J0@5!T IJ'X6C*/*[<XH;\_%1\]]5+E2<=.LDC63RX3R2O?L_<-IW
MQ&@?% 4Q;J71H10'[3#LG7=Y"7QI>J) <[:FLGK9-:M-V[TVW::U/E3MN.J>
M;S)5+[\C?)E3@0I8*$GG,E('Q*O^6$TD6YF.,6-2]1\SS-0G!7 -4-<73'6-
M>J(W:#Y2!O\!4$L#!!0    ( $ATAU+X8FUGN@(  $,(   :    >&PO=V]R
M:W-H965T<R]S:&5E=#$P-"YX;6RM5E]OVC <_"I6U(=66IO$"?E3 5(*;.NT
M5JC0[6':@TE^$*M.S&Q3VF\_.TE32E/4!UZ(G=P==V=BT]]R\2!S (6>"E;*
M@94KM;ZT;9GF4!!YP==0ZB=++@JB]%2L;+D60+**5# ;.TY@%X26UK!?W9N*
M89]O%*,E3 62FZ(@XOD*&-\.+-=ZN7%'5[DR-^QA?TU6, -UOYX*/;-;E8P6
M4$K*2R1@.; 2]W+D.H90(7Y1V,J=,3)1%IP_F,EU-K <XP@8I,I($'UYA!$P
M9I2TCW^-J-5^IR'NCE_4OU;A=9@%D3#B[#?-5#ZP(@MEL"0;IN[X]CLT@7I&
M+^5,5I]HVV ="Z4;J7C1D+6#@I;UE3PU1>P07/\# FX(^+,$KR%X5=#:615K
M3!09]@7?(F'06LT,JFXJMDY#2[.,,R7T4ZIY:GC+%2",T3F:P4HOCX(,79?U
MS\/4?(Y^\G)USG37&4JD!"71XAE] [X29)W3E#"-2&OPZ1@4H4R>:=K];(Q.
M3\[0":(EFN=\(TF9R;ZMM&GSU7;:&+RJ#>(/#/X@Y07RW"\(.]CMH(\^3W?>
MTFU=5=L7;OO"E9[_@5X=O,[-7ILA53-=Z6JYH)(S[]3C$/>P$^DHC[LI.F"A
M$T1A"WOCUFO=>@?=WM]>SR=C-)LG\\GL0'J_U?./F[Z6Z^W$BK'OX[WP[U&N
MZ\>1TQV^UYKM'30[N9DDZ,\-% L0?P^$#UJ]X+CA@W>QO#@,XKWP'2@7QW%W
M]K#U&A[T.DINDW%R('34"D7'#1V]7TLG],/])>^ N2X._.[8<>LV/N@VD92@
M*4GIDJ:?67K7>=TFG>/VT.CMOM$N]N)HKX<NF.?Z^SW8.SN\.5YOB%C14B(&
M2\US+D+=I*A/K'JB^+K:]!=<Z2.D&N;ZE =A /KYDNN-OYF8<Z3]WS#\#U!+
M P04    " !(=(=2Y&WU?W0"  !E!@  &@   'AL+W=O<FMS:&5E=',O<VAE
M970Q,#4N>&ULO95-3^,P$(;_RBCB !+;I$EH :61Z ?:70&J*+"'U1[<9MI8
M.':QG;9(^^/7=D)4*$4][26QX_>9\;R))\E:R&>5(VK8%(RKGI=KO;ST?37+
ML2"J)9;(S<I<R()H,Y4+7RTEDLQ!!?/#(.CX!:'<2Q/W;"S31)2:48YC":HL
M"B)?^\C$NN>UO;<']W21:_O 3Y,E6> $]>-R+,W,;Z)DM$"NJ. @<=[SKMJ7
MH]CJG>")XEIMC<%6,A7BV4Y^9#TOL!M"AC-M(Q!S6^$ &;.!S#9>ZIA>D]*"
MV^.WZ->N=E/+E"@<"/:+9CKO>><>9#@G)=/W8OT=ZWK.;+R98,I=85UINX$'
MLU)I4=2PV4%!>74GF]J'+: =[P'"&@@/!:(:B X%XAJ(#P7.:L"5[E>U.^.&
M1),TD6(-TJI--#MP[CO:^$6Y_4XF6II5:CB=W@F-$$;P#2;E5.%+B5S#:&6O
MQT/4A#(%#[C1)6$G1O0X&<+QT0D< >7PD(M2$9ZIQ-=F*S:@/ZO3]JNTX9ZT
MUSAM0=@YA3 (VY_@@Z_QGX2W(&KOQ8>'X\$G^.A@O'WQ'O>-_<T[")MW$+IX
M\9YX8_)J3IY6H 5<S5Y**A'ZI3(JI5"=PIUI%V(. Z+RM_7L%!Z$)NPSZZID
M'9?,MHE5&I_'093XJVV'=E7A11B<?9"-=F6=[D44-JIW!4=-P=&7!>]\:K]O
ML9BB_ -_X8EJ,L0-3 0K;2LQ]=_<#!K%%W;'3?;X/]K=CW<<BCI!$'QPR-\Z
MHK8!WQ*YH%P!P[GA@E;7'&M9-;5JHL72G=JIT*8'N&%N_@,HK<"LSX4YN?7$
M-H+FSY+^ U!+ P04    " !(=(=23.:<Q1P#   *$@  #0   'AL+W-T>6QE
M<RYX;6S=6&UKVS 0_BM&':.%4<=QX\9K'-@"A<$V"NV'?2M*+"<"6?)DI4OZ
MZZ>S'.>ENM+UPY;.(;5TC^ZY1W?GRF14F[5@MPO&3+ JA:PSLC"F^AB&]6S!
M2EJ?JXI)BQ1*E]38J9Z'=:49S6MP*D78[_62L*1<DO%(+LOKTM3!3"VER<A%
M9PK<[4N>D2BY((&CFZB<9>3^]/W/I3)7[P)W/_EP<M*[/[LZM)\VP!D)O:2#
M%Y">]W!>BV'4R8NHGV'&B"_WB;=$>XYAF]7QJ%!RF]R8.(-EIB4+'JC(R(0*
M/M4<O I:<K%VYCX89DHH'1A;51LJ DO]Z.#(S:#@+4_)I=)-;!?!_9VVRP^
MS0P$<B$Z@7WB#.-118UA6E[;2;.X,3Z!@G9\MZZLPKFFZZ@_(%N'YF:#3)7.
MF>["1&1C&H\$*T".YO,%W(VJ0@"-4:4=Y)S.E:2-AHU'.["T,R;$+3P-/XH]
M[E6Q4[,>5$QV0RNH'3H:-P'^73;'O4O[.MZ@X@_*?%[:[<AF#DW&;C0K^*J9
MKXI. ,8>X>RTJL3ZD^!S63*W^1<''(_HQB]8*,T?;31HE9DU,$V"!Z8-G^U:
M?FE:W;&5V;33JL U]]^@YK^;YSF33%.Q*]KV_C%G^=6*X\M_);GYKW(HV*NQ
M/>*.7>3@+8A,CE]DG!Z_QO9EX^A$ANW1N'/^[IV^G36 MYR,?(?W);$-&DR7
M7!@NV]F"YSF33PYA2V_HU+[H[O';]3DKZ%*8NP[,R';\C>5\6:;=JAM(1+MJ
M._X*VXN2[A7+QN(R9RN63]JIGD^;86 '-FI[@<,A<MU<?@3S<9@? 0R+@RG
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
MS#_920=I&!S=Q/R3GV*4AKVX% .7;>]A8A;**2QT@&E[<Z*5:PDQ,0OE)TF
M?F%ZSV:.62BGL- (IMOT"FXY9J&<PD*CT53L2L%A[1R=(4!AH6 ^F4),S$(Y
MA86"F!G$Q"R44U@HF/9ZT<0LE%-8*(CI11.S4$YAH2!F#J>O8!8J*"P4*"(8
M%4%,S$(%A87&,>T^B(E9J*"PD#?8_4?H=^([Q,0L5%!8*%B2@2V]P"Q44%@H
M4))Y]FQB%BHH+#2.:?=!3'2F&LGXCU<Y@D4DB(E9J""93!"J'IU!3,Q"!4D=
M[G#0_E=[AYB8A0J26APL<H'7T;"%\Q,Q"Y74M3@WIK]1W6Z>(L3$+%225.0\
MS ]\V.K=L^EA8A8J22IR@8D17BY48A8J22IR(_7-W2,*,3$+E205N4/,772]
MFXY9J"2IR(7*L)<0$[-026*A .89K'J4Z(QI$@N%JL6PAU1B%BI)+!3"A+E0
MB5FH)+%0"!/F0A5FH8K$0B', F)B%JI(+!3"+"$F9J&*Q$(AS IB8A:J3CHN
M5$-,S$+5":? ?7&K#7YC8A:J2"P4PHPA)F:ABL1"AZ-LOSK'$!.S4$5BH0/,
M_2;$1%?ND%@H@.GU-RO,0A6)A48P=ZD&P*PQ"]4D%AK!G&EE:" F9J&:Q$*A
MFPY[2#5FH9K$0B.8MZ)170,Q,0O5)!8*C:=[T<0L5)-8*(0)^YLU9J'ZI+,3
M8'^SQBQ4GVIVPD$"7&,6JD\S(WN_#3$Q"]4DLQ/&,&]%/WB8Z I2DMD)H;D>
ML*7'$;Z(E&1N=FBVAP^*+BB-*$P4!,T\4'1):43AHB!H[H&BBTHC"AL%00L/
M%%U;&E'X:'3]P/,1HCA"EYI&SDA3=WC_^M5"/,A.+#Z:B_1F?\/;9J:9_>'.
ME62Y73'XL&W;"[/O4W>C^&+_GT7V_Q7E]7]02P,$%     @ 2'2'4N)5#QSX
M @  L#T  !H   !X;"]?<F5L<R]W;W)K8F]O:RYX;6PN<F5L<\W;RV[:0!B&
MX5M!OH!XSH<JR:J;;*O< "(&HG 2=M7D[HN2!7RC+KJ)_*[0&#&\&S]"9O[[
M7\-N.;T>#^/V]30NWO>[P_C0;:?I]*/OQ]5VV"_'N^-I.%S>61_/^^5T69XW
M_6FY>EMNAMX9D_KS[1[=X_WMGHOGC]/P/SL>U^O7U?#SN/J]'P[3/S;N_QS/
M;^-V&*9N\;P\;X;IH>O?=]?+8__Y8N\N.W>+IY>'[OST8KM^[B G06[^("]!
M?OZ@($%A_J H07'^H"1!:?Z@+$%Y_J B067^H"I!=?X@:U1& TAJL 9H;95K
M"_#:*M@6(+95LBW ;*MH6X#:5MFV +>MPFT!<ENEVP+LMHJW!>CM5&\'T-NI
MW@Z@MVM^; /T=JJW ^CM5&\'T-NIW@Z@MU.]'4!OIWH[@-Y.]78 O9WJ[0!Z
M>]7; _3VJK<'Z.U5;P_0VS</2P!Z>]7; _3VJK<'Z.U5;P_0VZO>'J"W5[T]
M0&^O>GN WD'U#@"]@^H= 'H'U3L ] ZJ=P#H'9J'W0"]@^H= 'H'U3L ] ZJ
M=P#H'53O - [J-X!H'=4O2- [ZAZ1X#>4?6. +VCZAT!>D?5.P+TCLV?E0"]
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#<FF9PQWRGY./T
ML1O&:]'7N@GX3K>GRV>'Z_=_+K\NMK?6)]7];<;X^!=02P,$%     @ 2'2'
M4@Y(+SEJ @  =3L  !,   !;0V]N=&5N=%]4>7!E<UTN>&ULS=O?;ILP%,?Q
M5XFXK0+88 -3TYMVMULO]@(,G :%?[+=+GW[.:2MM*F+5F72OC=!B>WS._A(
MG[M<?WN>C5L=AGYTFVCG_?PI25RS,T/MXFDV8UC93G:H??AJ'Y*Y;O;U@TED
MFNJDF49O1K_VQQK1S?6=V=:/O5]]/H2?73>-F\B:WD6KV]/&8]8FJN>Y[YK:
MA_7D:6Q_2UF_),3AY++'[;K9784-4?)NPG'ESP$OY[X^&6N[UJSN:^N_U$/8
ME1SZQ/GGWKCX?(EW>IRVVZXQ[=0\#N%([&9KZM;MC/%#'Y^*7IU/]N&&S>E3
M7)R_E#D7&';>VVEV86+6?#SN=23'T^LY%#+6=^=?\2TQE+[X_<QQVJUI_S([
M7.^/R>Z7>;AD>5Q^Q[_.^*W^!_N0D#XR2!\YI \%Z4-#^B@@?920/BI('R*E
M-$(155!(%113!05505%54%@5%%<%!59!D5529)44625%5DF155)DE119)456
M29%54F25%%DSBJP91=:,(FM&D36CR)I19,THLF8463.*K!E%UIPB:TZ1-:?(
MFE-DS2FRYA19<XJL.476G")K3I%54615%%D5159%D5519%44615%5D6155%D
M5119-45639%54V35%%DU159-D5539-44635%5DV1M:#(6E!D+2BR%A19"XJL
M!476@B)K09&UH,A:4&0M*;*6%%E+BJPE1=:2(FM)D;6DR%I29"TILI8462N*
MK!5%UHHB:T61M:+(6E%DK2BR5A19*XJL%456D5)H%2G%5I%2<!4I15>14G@5
MZ?_T]?LT[?]Q_/*,A[H;7_.3Y=^V-S\!4$L! A0#%     @ 2'2'4@=!36*!
M    L0   !               ( !     &1O8U!R;W!S+V%P<"YX;6Q02P$"
M% ,4    " !(=(=2'&$[RN\    K @  $0              @ &O    9&]C
M4')O<',O8V]R92YX;6Q02P$"% ,4    " !(=(=2F5R<(Q &  "<)P  $P
M            @ '- 0  >&PO=&AE;64O=&AE;64Q+GAM;%!+ 0(4 Q0    (
M $ATAU*-CCME30,  / *   8              " @0X(  !X;"]W;W)K<VAE
M971S+W-H965T,2YX;6Q02P$"% ,4    " !(=(=2$E<EE@\'  !0&P  &
M            @(&1"P  >&PO=V]R:W-H965T<R]S:&5E=#(N>&UL4$L! A0#
M%     @ 2'2'4E77=]0$ @  X00  !@              ("!UA(  'AL+W=O
M<FMS:&5E=',O<VAE970S+GAM;%!+ 0(4 Q0    ( $ATAU*/AK,-WP4  ,D6
M   8              " @1 5  !X;"]W;W)K<VAE971S+W-H965T-"YX;6Q0
M2P$"% ,4    " !(=(=2-#Y80"T#  #!"   &               @($E&P
M>&PO=V]R:W-H965T<R]S:&5E=#4N>&UL4$L! A0#%     @ 2'2'4ET"##ED
M @  D04  !@              ("!B!X  'AL+W=O<FMS:&5E=',O<VAE970V
M+GAM;%!+ 0(4 Q0    ( $ATAU*S?*CH3@4  #@6   8              "
M@2(A  !X;"]W;W)K<VAE971S+W-H965T-RYX;6Q02P$"% ,4    " !(=(=2
M!="9-A0'  "@&P  &               @(&F)@  >&PO=V]R:W-H965T<R]S
M:&5E=#@N>&UL4$L! A0#%     @ 2'2'4NF?.7/V P  40@  !@
M     ("!\"T  'AL+W=O<FMS:&5E=',O<VAE970Y+GAM;%!+ 0(4 Q0    (
M $ATAU)V]C_'KAX  ,Q?   9              " @1PR  !X;"]W;W)K<VAE
M971S+W-H965T,3 N>&UL4$L! A0#%     @ 2'2'4A-'L"5*"P  11\  !D
M             ("! 5$  'AL+W=O<FMS:&5E=',O<VAE970Q,2YX;6Q02P$"
M% ,4    " !(=(=2HGP]]0$$  #4"0  &0              @(&"7   >&PO
M=V]R:W-H965T<R]S:&5E=#$R+GAM;%!+ 0(4 Q0    ( $ATAU*\(I_**0,
M  H'   9              " @;I@  !X;"]W;W)K<VAE971S+W-H965T,3,N
M>&UL4$L! A0#%     @ 2'2'4DG623N2 @  LP4  !D              ("!
M&F0  'AL+W=O<FMS:&5E=',O<VAE970Q-"YX;6Q02P$"% ,4    " !(=(=2
M0&0O8A("  "D!   &0              @('C9@  >&PO=V]R:W-H965T<R]S
M:&5E=#$U+GAM;%!+ 0(4 Q0    ( $ATAU*\1$1<ZP(  %<&   9
M      " @2QI  !X;"]W;W)K<VAE971S+W-H965T,38N>&UL4$L! A0#%
M  @ 2'2'4DT?&5F3 P  G <  !D              ("!3FP  'AL+W=O<FMS
M:&5E=',O<VAE970Q-RYX;6Q02P$"% ,4    " !(=(=2U&SJ#U(#   +!P
M&0              @($8<   >&PO=V]R:W-H965T<R]S:&5E=#$X+GAM;%!+
M 0(4 Q0    ( $ATAU)9WVRP?0(  '4%   9              " @:%S  !X
M;"]W;W)K<VAE971S+W-H965T,3DN>&UL4$L! A0#%     @ 2'2'4LZ3/<%+
M @  $ 4  !D              ("!578  'AL+W=O<FMS:&5E=',O<VAE970R
M,"YX;6Q02P$"% ,4    " !(=(=2OY01DM\#  #E"   &0
M@('7>   >&PO=V]R:W-H965T<R]S:&5E=#(Q+GAM;%!+ 0(4 Q0    ( $AT
MAU*@H5PM=P4  )\,   9              " @>U\  !X;"]W;W)K<VAE971S
M+W-H965T,C(N>&UL4$L! A0#%     @ 2'2'4KC8/Y1^ P  ;P<  !D
M         ("!FX(  'AL+W=O<FMS:&5E=',O<VAE970R,RYX;6Q02P$"% ,4
M    " !(=(=2)17Y 7P#  "S!P  &0              @(%0A@  >&PO=V]R
M:W-H965T<R]S:&5E=#(T+GAM;%!+ 0(4 Q0    ( $ATAU)KNK(,^P@  / 9
M   9              " @0.*  !X;"]W;W)K<VAE971S+W-H965T,C4N>&UL
M4$L! A0#%     @ 2'2'4EJ6#DEO"   :10  !D              ("!-9,
M 'AL+W=O<FMS:&5E=',O<VAE970R-BYX;6Q02P$"% ,4    " !(=(=2YN5&
M/28$  #\"@  &0              @(';FP  >&PO=V]R:W-H965T<R]S:&5E
M=#(W+GAM;%!+ 0(4 Q0    ( $ATAU+F:G^F^P,  *T(   9
M  " @3B@  !X;"]W;W)K<VAE971S+W-H965T,C@N>&UL4$L! A0#%     @
M2'2'4F+@(Z0P P  F@8  !D              ("!:J0  'AL+W=O<FMS:&5E
M=',O<VAE970R.2YX;6Q02P$"% ,4    " !(=(=2B=0ML.D$    "P  &0
M            @('1IP  >&PO=V]R:W-H965T<R]S:&5E=#,P+GAM;%!+ 0(4
M Q0    ( $ATAU)U@&!7#0(  'X$   9              " @?&L  !X;"]W
M;W)K<VAE971S+W-H965T,S$N>&UL4$L! A0#%     @ 2'2'4MC_+Y*,(
M,6P  !D              ("!-:\  'AL+W=O<FMS:&5E=',O<VAE970S,BYX
M;6Q02P$"% ,4    " !(=(=2V#H^L#@(   9%@  &0              @('X
MSP  >&PO=V]R:W-H965T<R]S:&5E=#,S+GAM;%!+ 0(4 Q0    ( $ATAU+,
M,S1G80(  /4%   9              " @6?8  !X;"]W;W)K<VAE971S+W-H
M965T,S0N>&UL4$L! A0#%     @ 2'2'4J^M:#_W @  Y08  !D
M     ("!_]H  'AL+W=O<FMS:&5E=',O<VAE970S-2YX;6Q02P$"% ,4
M" !(=(=2*Z"W,DL"  #\!   &0              @($MW@  >&PO=V]R:W-H
M965T<R]S:&5E=#,V+GAM;%!+ 0(4 Q0    ( $ATAU+ +#Q)X@(  $0&   9
M              " @:_@  !X;"]W;W)K<VAE971S+W-H965T,S<N>&UL4$L!
M A0#%     @ 2'2'4KZ<)M?P @  ( 8  !D              ("!R.,  'AL
M+W=O<FMS:&5E=',O<VAE970S."YX;6Q02P$"% ,4    " !(=(=2!L-ZE^ "
M   7!@  &0              @('OY@  >&PO=V]R:W-H965T<R]S:&5E=#,Y
M+GAM;%!+ 0(4 Q0    ( $ATAU)#SFGE90(  "H%   9              "
M@0;J  !X;"]W;W)K<VAE971S+W-H965T-# N>&UL4$L! A0#%     @ 2'2'
M4BD^]I]S P   @@  !D              ("!HNP  'AL+W=O<FMS:&5E=',O
M<VAE970T,2YX;6Q02P$"% ,4    " !(=(=2K%E'%[ "  "O!0  &0
M        @(%,\   >&PO=V]R:W-H965T<R]S:&5E=#0R+GAM;%!+ 0(4 Q0
M   ( $ATAU*J-QJ\ @,  '@&   9              " @3/S  !X;"]W;W)K
M<VAE971S+W-H965T-#,N>&UL4$L! A0#%     @ 2'2'4@2HOOQ/!P  TA<
M !D              ("!;/8  'AL+W=O<FMS:&5E=',O<VAE970T-"YX;6Q0
M2P$"% ,4    " !(=(=2XN]?Y#4'  #F$@  &0              @('R_0
M>&PO=V]R:W-H965T<R]S:&5E=#0U+GAM;%!+ 0(4 Q0    ( $ATAU(L4.]U
MA ,  !X)   9              " @5X% 0!X;"]W;W)K<VAE971S+W-H965T
M-#8N>&UL4$L! A0#%     @ 2'2'4G_GRQ@D P  # <  !D
M ("!&0D! 'AL+W=O<FMS:&5E=',O<VAE970T-RYX;6Q02P$"% ,4    " !(
M=(=2#9'2#A8#  !:!@  &0              @(%T# $ >&PO=V]R:W-H965T
M<R]S:&5E=#0X+GAM;%!+ 0(4 Q0    ( $ATAU+7!O?#O0,  ",)   9
M          " @<$/ 0!X;"]W;W)K<VAE971S+W-H965T-#DN>&UL4$L! A0#
M%     @ 2'2'4E= U\0/"   VBX  !D              ("!M1,! 'AL+W=O
M<FMS:&5E=',O<VAE970U,"YX;6Q02P$"% ,4    " !(=(=2&DQV;$ )  #5
M.P  &0              @('[&P$ >&PO=V]R:W-H965T<R]S:&5E=#4Q+GAM
M;%!+ 0(4 Q0    ( $ATAU*U?2ZQ;18  (NT   9              " @7(E
M 0!X;"]W;W)K<VAE971S+W-H965T-3(N>&UL4$L! A0#%     @ 2'2'4NQ2
MT'FL P  (@T  !D              ("!%CP! 'AL+W=O<FMS:&5E=',O<VAE
M970U,RYX;6Q02P$"% ,4    " !(=(=26]3-".4%  #),   &0
M    @('Y/P$ >&PO=V]R:W-H965T<R]S:&5E=#4T+GAM;%!+ 0(4 Q0    (
M $ATAU)1?P8\U@(  "((   9              " @15& 0!X;"]W;W)K<VAE
M971S+W-H965T-34N>&UL4$L! A0#%     @ 2'2'4NZG-"C5 @  -0<  !D
M             ("!(DD! 'AL+W=O<FMS:&5E=',O<VAE970U-BYX;6Q02P$"
M% ,4    " !(=(=2+6M G%\"  "0!@  &0              @($N3 $ >&PO
M=V]R:W-H965T<R]S:&5E=#4W+GAM;%!+ 0(4 Q0    ( $ATAU*D:GT_^ $
M "$$   9              " @<1. 0!X;"]W;W)K<VAE971S+W-H965T-3@N
M>&UL4$L! A0#%     @ 2'2'4C$ R+E9 @  L04  !D              ("!
M\U ! 'AL+W=O<FMS:&5E=',O<VAE970U.2YX;6Q02P$"% ,4    " !(=(=2
MA#N+5YH"   Z!@  &0              @(&#4P$ >&PO=V]R:W-H965T<R]S
M:&5E=#8P+GAM;%!+ 0(4 Q0    ( $ATAU)JLQ<K_@$  "@$   9
M      " @516 0!X;"]W;W)K<VAE971S+W-H965T-C$N>&UL4$L! A0#%
M  @ 2'2'4A/8=P99 @  O 4  !D              ("!B5@! 'AL+W=O<FMS
M:&5E=',O<VAE970V,BYX;6Q02P$"% ,4    " !(=(=2:[&>H?$!   =!
M&0              @($96P$ >&PO=V]R:W-H965T<R]S:&5E=#8S+GAM;%!+
M 0(4 Q0    ( $ATAU)!]0 9<@,  ,L,   9              " @4%= 0!X
M;"]W;W)K<VAE971S+W-H965T-C0N>&UL4$L! A0#%     @ 2'2'4LUSY:Z1
M @  *P@  !D              ("!ZF ! 'AL+W=O<FMS:&5E=',O<VAE970V
M-2YX;6Q02P$"% ,4    " !(=(=2>?#L]%8#  " #   &0
M@(&R8P$ >&PO=V]R:W-H965T<R]S:&5E=#8V+GAM;%!+ 0(4 Q0    ( $AT
MAU*#:C(7/@0  #03   9              " @3]G 0!X;"]W;W)K<VAE971S
M+W-H965T-C<N>&UL4$L! A0#%     @ 2'2'4H9X3$-A @  ,P8  !D
M         ("!M&L! 'AL+W=O<FMS:&5E=',O<VAE970V."YX;6Q02P$"% ,4
M    " !(=(=2L %<H+T#  !,#@  &0              @(%,;@$ >&PO=V]R
M:W-H965T<R]S:&5E=#8Y+GAM;%!+ 0(4 Q0    ( $ATAU*29""X[0$  $H$
M   9              " @4!R 0!X;"]W;W)K<VAE971S+W-H965T-S N>&UL
M4$L! A0#%     @ 2'2'4F;QN*%* P  D D  !D              ("!9'0!
M 'AL+W=O<FMS:&5E=',O<VAE970W,2YX;6Q02P$"% ,4    " !(=(=2S<)N
MQ]\"  #2"   &0              @('E=P$ >&PO=V]R:W-H965T<R]S:&5E
M=#<R+GAM;%!+ 0(4 Q0    ( $ATAU((4ON'?@,  +()   9
M  " @?MZ 0!X;"]W;W)K<VAE971S+W-H965T-S,N>&UL4$L! A0#%     @
M2'2'4KAX:\S> P   @X  !D              ("!L'X! 'AL+W=O<FMS:&5E
M=',O<VAE970W-"YX;6Q02P$"% ,4    " !(=(=2X-2%..("   _"0  &0
M            @('%@@$ >&PO=V]R:W-H965T<R]S:&5E=#<U+GAM;%!+ 0(4
M Q0    ( $ATAU(D7R7SZ@(  -D(   9              " @=Z% 0!X;"]W
M;W)K<VAE971S+W-H965T-S8N>&UL4$L! A0#%     @ 2'2'4E^WX3&^ P
M*0P  !D              ("!_X@! 'AL+W=O<FMS:&5E=',O<VAE970W-RYX
M;6Q02P$"% ,4    " !(=(=2\<LF=)4&  "/(0  &0              @('T
MC $ >&PO=V]R:W-H965T<R]S:&5E=#<X+GAM;%!+ 0(4 Q0    ( $ATAU+-
M - 1* ,  '4*   9              " @<"3 0!X;"]W;W)K<VAE971S+W-H
M965T-SDN>&UL4$L! A0#%     @ 2'2'4D?J')+. @  \ @  !D
M     ("!'Y<! 'AL+W=O<FMS:&5E=',O<VAE970X,"YX;6Q02P$"% ,4
M" !(=(=2LH*J7<H$  !#%   &0              @($DF@$ >&PO=V]R:W-H
M965T<R]S:&5E=#@Q+GAM;%!+ 0(4 Q0    ( $ATAU*,1K 7 P4  'D<   9
M              " @26? 0!X;"]W;W)K<VAE971S+W-H965T.#(N>&UL4$L!
M A0#%     @ 2'2'4LV$MK3Y P  N \  !D              ("!7Z0! 'AL
M+W=O<FMS:&5E=',O<VAE970X,RYX;6Q02P$"% ,4    " !(=(=2@3[/-"\%
M   6%@  &0              @(&/J $ >&PO=V]R:W-H965T<R]S:&5E=#@T
M+GAM;%!+ 0(4 Q0    ( $ATAU)O@VC$X@0  . 3   9              "
M@?6M 0!X;"]W;W)K<VAE971S+W-H965T.#4N>&UL4$L! A0#%     @ 2'2'
M4E7+FI$V P  X@H  !D              ("!#K,! 'AL+W=O<FMS:&5E=',O
M<VAE970X-BYX;6Q02P$"% ,4    " !(=(=2=P0;D]T#  !A"P  &0
M        @(%[M@$ >&PO=V]R:W-H965T<R]S:&5E=#@W+GAM;%!+ 0(4 Q0
M   ( $ATAU+JG_\M_@(  "()   9              " @8^Z 0!X;"]W;W)K
M<VAE971S+W-H965T.#@N>&UL4$L! A0#%     @ 2'2'4JEWNNJ0 P  S@P
M !D              ("!Q+T! 'AL+W=O<FMS:&5E=',O<VAE970X.2YX;6Q0
M2P$"% ,4    " !(=(=2E0E5G_D#  ")#0  &0              @(&+P0$
M>&PO=V]R:W-H965T<R]S:&5E=#DP+GAM;%!+ 0(4 Q0    ( $ATAU+KYIHZ
MD@0  &8/   9              " @;O% 0!X;"]W;W)K<VAE971S+W-H965T
M.3$N>&UL4$L! A0#%     @ 2'2'4D<<7'2!!0  J"H  !D
M ("!A,H! 'AL+W=O<FMS:&5E=',O<VAE970Y,BYX;6Q02P$"% ,4    " !(
M=(=2J9-,+MD"   8!P  &0              @($\T $ >&PO=V]R:W-H965T
M<R]S:&5E=#DS+GAM;%!+ 0(4 Q0    ( $ATAU)-=9!L? (  $H&   9
M          " @4S3 0!X;"]W;W)K<VAE971S+W-H965T.30N>&UL4$L! A0#
M%     @ 2'2'4L!&_Y=E @  N04  !D              ("!_]4! 'AL+W=O
M<FMS:&5E=',O<VAE970Y-2YX;6Q02P$"% ,4    " !(=(=2MMK0.A $   !
M#0  &0              @(&;V $ >&PO=V]R:W-H965T<R]S:&5E=#DV+GAM
M;%!+ 0(4 Q0    ( $ATAU+8Y&UWM (  *\'   9              " @>+<
M 0!X;"]W;W)K<VAE971S+W-H965T.3<N>&UL4$L! A0#%     @ 2'2'4JZ;
MJ;7W @  %P@  !D              ("!S=\! 'AL+W=O<FMS:&5E=',O<VAE
M970Y."YX;6Q02P$"% ,4    " !(=(=2A\MZ+#,#   "#   &0
M    @('[X@$ >&PO=V]R:W-H965T<R]S:&5E=#DY+GAM;%!+ 0(4 Q0    (
M $ATAU(H9JQ5W@,  ,\,   :              " @67F 0!X;"]W;W)K<VAE
M971S+W-H965T,3 P+GAM;%!+ 0(4 Q0    ( $ATAU)[',;&\ $  /T#   :
M              " @7OJ 0!X;"]W;W)K<VAE971S+W-H965T,3 Q+GAM;%!+
M 0(4 Q0    ( $ATAU*,<J *(@,  /D)   :              " @:/L 0!X
M;"]W;W)K<VAE971S+W-H965T,3 R+GAM;%!+ 0(4 Q0    ( $ATAU($-8H
MWP(  + (   :              " @?WO 0!X;"]W;W)K<VAE971S+W-H965T
M,3 S+GAM;%!+ 0(4 Q0    ( $ATAU+X8FUGN@(  $,(   :
M  " @13S 0!X;"]W;W)K<VAE971S+W-H965T,3 T+GAM;%!+ 0(4 Q0    (
M $ATAU+D;?5_= (  &4&   :              " @0;V 0!X;"]W;W)K<VAE
M971S+W-H965T,3 U+GAM;%!+ 0(4 Q0    ( $ATAU),YIS%' ,   H2   -
M              "  ;+X 0!X;"]S='EL97,N>&UL4$L! A0#%     @ 2'2'
M4I>*NQS     $P(   L              ( !^?L! %]R96QS+RYR96QS4$L!
M A0#%     @ 2'2'4OQ)6[@C!P  F44   \              ( !XOP! 'AL
M+W=O<FMB;V]K+GAM;%!+ 0(4 Q0    ( $ATAU+B50\<^ (  + ]   :
M          "  3($ @!X;"]?<F5L<R]W;W)K8F]O:RYX;6PN<F5L<U!+ 0(4
M Q0    ( $ATAU(.2"\Y:@(  '4[   3              "  6(' @!;0V]N
E=&5N=%]4>7!E<UTN>&UL4$L%!@    !Q '$ %!\  /T) @    $!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>122
<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>123
<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>124
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.21.1</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>387</ContextCount>
  <ElementCount>507</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>false</FootnotesReported>
  <SegmentCount>93</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>5</UnitCount>
  <MyReports>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>000 - Document - Document And Entity Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-document-and-entity-information</Role>
      <ShortName>Document And Entity Information</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>001 - Statement - Consolidated Balance Sheets</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-consolidated-balance-sheets</Role>
      <ShortName>Consolidated Balance Sheets</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>002 - Statement - Consolidated Balance Sheets (Parentheticals)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-consolidated-balance-sheets-parentheticals</Role>
      <ShortName>Consolidated Balance Sheets (Parentheticals)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>003 - Statement - Consolidated Statements of Operations</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-consolidated-statements-of-operations-</Role>
      <ShortName>Consolidated Statements of Operations</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>4</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>004 - Statement - Consolidated Statements of Comprehensive Income</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-consolidated-statements-of-comprehensive-income</Role>
      <ShortName>Consolidated Statements of Comprehensive Income</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>5</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>005 - Statement - Consolidated Statements of Comprehensive Income (Parentheticals)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-consolidated-statements-of-comprehensive-income-parentheticals</Role>
      <ShortName>Consolidated Statements of Comprehensive Income (Parentheticals)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>6</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>006 - Statement - Consolidated Statements of Shareholders' Equity</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-consolidated-statements-of-shareholders-equity</Role>
      <ShortName>Consolidated Statements of Shareholders' Equity</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>7</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>007 - Statement - Consolidated Statements of Cash Flows</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-consolidated-statements-of-cash-flows</Role>
      <ShortName>Consolidated Statements of Cash Flows</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>8</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>008 - Disclosure - Note 1 - Description of the Business</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-1-description-of-the-business</Role>
      <ShortName>Note 1 - Description of the Business</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>9</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>009 - Disclosure - Note 2 - Basis of Presentation</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-2-basis-of-presentation</Role>
      <ShortName>Note 2 - Basis of Presentation</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>10</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>010 - Disclosure - Note 3 - Acquisitions</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-3-acquisitions</Role>
      <ShortName>Note 3 - Acquisitions</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>11</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>011 - Disclosure - Note 4 - Fair Value Measurements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-4-fair-value-measurements</Role>
      <ShortName>Note 4 - Fair Value Measurements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>12</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>012 - Disclosure - Note 5 - Trade Accounts Receivable</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable</Role>
      <ShortName>Note 5 - Trade Accounts Receivable</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>13</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>013 - Disclosure - Note 6 - Other Receivables</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-6-other-receivables</Role>
      <ShortName>Note 6 - Other Receivables</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>14</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>014 - Disclosure - Note 7 - Inventory</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-7-inventory</Role>
      <ShortName>Note 7 - Inventory</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>15</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>015 - Disclosure - Note 8 - Property and Equipment</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement--note-8-property-and-equipment-</Role>
      <ShortName>Note 8 - Property and Equipment</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>16</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>016 - Disclosure - Note 9 - Intangible Assets</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-9-intangible-assets</Role>
      <ShortName>Note 9 - Intangible Assets</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>17</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>017 - Disclosure - Note 10 - Goodwill</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-10-goodwill</Role>
      <ShortName>Note 10 - Goodwill</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>18</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>018 - Disclosure - Note 11 - Accrued Liabilities</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-11-accrued-liabilities</Role>
      <ShortName>Note 11 - Accrued Liabilities</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>19</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>019 - Disclosure - Note 12 - Long-term Debt</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-12-longterm-debt</Role>
      <ShortName>Note 12 - Long-term Debt</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>20</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>020 - Disclosure - Note 13 - Leases</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-13-leases</Role>
      <ShortName>Note 13 - Leases</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>21</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>021 - Disclosure - Note 14 - Commitments, Contingencies and Guarantees</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-14-commitments-contingencies-and-guarantees</Role>
      <ShortName>Note 14 - Commitments, Contingencies and Guarantees</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>22</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>022 - Disclosure - Note 15 - Share Capital</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-15-share-capital</Role>
      <ShortName>Note 15 - Share Capital</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>23</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>023 - Disclosure - Note 16 - Earnings Per Share</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-16-earnings-per-share</Role>
      <ShortName>Note 16 - Earnings Per Share</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>24</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>024 - Disclosure - Note 17 - Stock-based Compensation Plans</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans</Role>
      <ShortName>Note 17 - Stock-based Compensation Plans</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>25</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>025 - Disclosure - Note 18 - Income Taxes</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-18-income-taxes</Role>
      <ShortName>Note 18 - Income Taxes</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>26</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>026 - Disclosure - Note 19 - Contract Balances, Performance Obligations and Contract Costs</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs</Role>
      <ShortName>Note 19 - Contract Balances, Performance Obligations and Contract Costs</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>27</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>027 - Disclosure - Note 20 - Other Charges</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-20-other-charges</Role>
      <ShortName>Note 20 - Other Charges</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>28</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>028 - Disclosure - Note 21 - Supplemental Cash Flow Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-21-supplemental-cash-flow-information</Role>
      <ShortName>Note 21 - Supplemental Cash Flow Information</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>29</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>029 - Disclosure - Note 22 - Segmented Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-22-segmented-information</Role>
      <ShortName>Note 22 - Segmented Information</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>30</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>030 - Disclosure - Note 23 - Subsequent Event</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-23-subsequent-event-</Role>
      <ShortName>Note 23 - Subsequent Event</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>31</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>031 - Disclosure - Significant Accounting Policies (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-significant-accounting-policies-policies</Role>
      <ShortName>Significant Accounting Policies (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <Position>32</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>032 - Disclosure - Note 3 - Acquisitions (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-3-acquisitions-tables</Role>
      <ShortName>Note 3 - Acquisitions (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-3-acquisitions</ParentRole>
      <Position>33</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>033 - Disclosure - Note 4 - Fair Value Measurements (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-4-fair-value-measurements-tables</Role>
      <ShortName>Note 4 - Fair Value Measurements (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-4-fair-value-measurements</ParentRole>
      <Position>34</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>034 - Disclosure - Note 5 - Trade Accounts Receivable (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable-tables</Role>
      <ShortName>Note 5 - Trade Accounts Receivable (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable</ParentRole>
      <Position>35</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>035 - Disclosure - Note 6 - Other Receivables (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-6-other-receivables-tables</Role>
      <ShortName>Note 6 - Other Receivables (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-6-other-receivables</ParentRole>
      <Position>36</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>036 - Disclosure - Note 8 - Property and Equipment (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement--note-8-property-and-equipment-tables</Role>
      <ShortName>Note 8 - Property and Equipment (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement--note-8-property-and-equipment-</ParentRole>
      <Position>37</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>037 - Disclosure - Note 9 - Intangible Assets (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-9-intangible-assets-tables</Role>
      <ShortName>Note 9 - Intangible Assets (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-9-intangible-assets</ParentRole>
      <Position>38</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>038 - Disclosure - Note 10 - Goodwill (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-10-goodwill-tables</Role>
      <ShortName>Note 10 - Goodwill (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-10-goodwill</ParentRole>
      <Position>39</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>039 - Disclosure - Note 11 - Accrued Liabilities (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-11-accrued-liabilities-tables</Role>
      <ShortName>Note 11 - Accrued Liabilities (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-11-accrued-liabilities</ParentRole>
      <Position>40</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>040 - Disclosure - Note 13 - Leases (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-13-leases-tables</Role>
      <ShortName>Note 13 - Leases (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-13-leases</ParentRole>
      <Position>41</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>041 - Disclosure - Note 15 - Share Capital (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-15-share-capital-tables</Role>
      <ShortName>Note 15 - Share Capital (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-15-share-capital</ParentRole>
      <Position>42</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>042 - Disclosure - Note 16 - Earnings Per Share (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-16-earnings-per-share-tables</Role>
      <ShortName>Note 16 - Earnings Per Share (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-16-earnings-per-share</ParentRole>
      <Position>43</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>043 - Disclosure - Note 17 - Stock-based Compensation Plans (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-tables</Role>
      <ShortName>Note 17 - Stock-based Compensation Plans (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans</ParentRole>
      <Position>44</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>044 - Disclosure - Note 18 - Income Taxes (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-18-income-taxes-tables</Role>
      <ShortName>Note 18 - Income Taxes (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-18-income-taxes</ParentRole>
      <Position>45</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>045 - Disclosure - Note 19 - Contract Balances, Performance Obligations and Contract Costs (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs-tables</Role>
      <ShortName>Note 19 - Contract Balances, Performance Obligations and Contract Costs (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs</ParentRole>
      <Position>46</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>046 - Disclosure - Note 20 - Other Charges (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-20-other-charges-tables</Role>
      <ShortName>Note 20 - Other Charges (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-20-other-charges</ParentRole>
      <Position>47</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>047 - Disclosure - Note 21 - Supplemental Cash Flow Information (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-21-supplemental-cash-flow-information-tables</Role>
      <ShortName>Note 21 - Supplemental Cash Flow Information (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-21-supplemental-cash-flow-information</ParentRole>
      <Position>48</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>048 - Disclosure - Note 22 - Segmented Information (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-22-segmented-information-tables</Role>
      <ShortName>Note 22 - Segmented Information (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-22-segmented-information</ParentRole>
      <Position>49</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>049 - Disclosure - Note 2 - Basis of Presentation (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-2-basis-of-presentation-details-textual</Role>
      <ShortName>Note 2 - Basis of Presentation (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-2-basis-of-presentation</ParentRole>
      <Position>50</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>050 - Disclosure - Note 3 - Acquisitions (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-3-acquisitions-details-textual</Role>
      <ShortName>Note 3 - Acquisitions (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-3-acquisitions-tables</ParentRole>
      <Position>51</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.htm</HtmlFileName>
      <LongName>051 - Disclosure - Note 3 - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details</Role>
      <ShortName>Note 3 - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>52</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.htm</HtmlFileName>
      <LongName>052 - Disclosure - Note 3 - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details) (Parentheticals)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details-parentheticals</Role>
      <ShortName>Note 3 - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details) (Parentheticals)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>53</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R54.htm</HtmlFileName>
      <LongName>053 - Disclosure - Note 3 - Acquisitions - Acquired Intangible Assets Useful Lives (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-3-acquisitions-acquired-intangible-assets-useful-lives-details</Role>
      <ShortName>Note 3 - Acquisitions - Acquired Intangible Assets Useful Lives (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>54</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R55.htm</HtmlFileName>
      <LongName>054 - Disclosure - Note 3 - Acquisitions - Pro Forma Results of Operations (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-3-acquisitions-pro-forma-results-of-operations-details</Role>
      <ShortName>Note 3 - Acquisitions - Pro Forma Results of Operations (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>55</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R56.htm</HtmlFileName>
      <LongName>055 - Disclosure - Note 4 - Fair Value Measurements (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-4-fair-value-measurements-details-textual</Role>
      <ShortName>Note 4 - Fair Value Measurements (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-4-fair-value-measurements-tables</ParentRole>
      <Position>56</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R57.htm</HtmlFileName>
      <LongName>056 - Disclosure - Note 4 - Fair Value Measurements - Derivative Instruments at Fair Value (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-4-fair-value-measurements-derivative-instruments-at-fair-value-details</Role>
      <ShortName>Note 4 - Fair Value Measurements - Derivative Instruments at Fair Value (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>57</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R58.htm</HtmlFileName>
      <LongName>057 - Disclosure - Note 5 - Trade Accounts Receivable (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable-details-textual</Role>
      <ShortName>Note 5 - Trade Accounts Receivable (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable-tables</ParentRole>
      <Position>58</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R59.htm</HtmlFileName>
      <LongName>058 - Disclosure - Note 5 - Trade Accounts Receivable - Trade Receivables (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable-trade-receivables-details</Role>
      <ShortName>Note 5 - Trade Accounts Receivable - Trade Receivables (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>59</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R60.htm</HtmlFileName>
      <LongName>059 - Disclosure - Note 5 - Trade Accounts Receivable - Provision for Credit Losses (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-5-trade-accounts-receivable-provision-for-credit-losses-details</Role>
      <ShortName>Note 5 - Trade Accounts Receivable - Provision for Credit Losses (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>60</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R61.htm</HtmlFileName>
      <LongName>060 - Disclosure - Note 6 - Other Receivables (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-6-other-receivables-details-textual</Role>
      <ShortName>Note 6 - Other Receivables (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-6-other-receivables-tables</ParentRole>
      <Position>61</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R62.htm</HtmlFileName>
      <LongName>061 - Disclosure - Note 6 - Other Receivables - Other Receivables (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-6-other-receivables-other-receivables-details</Role>
      <ShortName>Note 6 - Other Receivables - Other Receivables (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>62</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R63.htm</HtmlFileName>
      <LongName>062 - Disclosure - Note 7 - Inventory (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-7-inventory-details-textual</Role>
      <ShortName>Note 7 - Inventory (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-7-inventory</ParentRole>
      <Position>63</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R64.htm</HtmlFileName>
      <LongName>063 - Disclosure - Note 8 - Property and Equipment - Property and Equipment (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-8-property-and-equipment-property-and-equipment-details</Role>
      <ShortName>Note 8 - Property and Equipment - Property and Equipment (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>64</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R65.htm</HtmlFileName>
      <LongName>064 - Disclosure - Note 9 - Intangible Assets (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-9-intangible-assets-details-textual</Role>
      <ShortName>Note 9 - Intangible Assets (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-9-intangible-assets-tables</ParentRole>
      <Position>65</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R66.htm</HtmlFileName>
      <LongName>065 - Disclosure - Note 9 - Intangible Assets - Intangible Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-9-intangible-assets-intangible-assets-details</Role>
      <ShortName>Note 9 - Intangible Assets - Intangible Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>66</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R67.htm</HtmlFileName>
      <LongName>066 - Disclosure - Note 10 - Goodwill - Goodwill (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-10-goodwill-goodwill-details</Role>
      <ShortName>Note 10 - Goodwill - Goodwill (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>67</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R68.htm</HtmlFileName>
      <LongName>067 - Disclosure - Note 11 - Accrued Liabilities - Accrued Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-11-accrued-liabilities-accrued-liabilities-details</Role>
      <ShortName>Note 11 - Accrued Liabilities - Accrued Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>68</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R69.htm</HtmlFileName>
      <LongName>068 - Disclosure - Note 12 - Long-term Debt (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-12-longterm-debt-details-textual</Role>
      <ShortName>Note 12 - Long-term Debt (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-12-longterm-debt</ParentRole>
      <Position>69</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R70.htm</HtmlFileName>
      <LongName>069 - Disclosure - Note 13 - Leases (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-13-leases-details-textual</Role>
      <ShortName>Note 13 - Leases (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-13-leases-tables</ParentRole>
      <Position>70</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R71.htm</HtmlFileName>
      <LongName>070 - Disclosure - Note 13 - Leases - Components of Operating Lease Expense (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-13-leases-components-of-operating-lease-expense-details</Role>
      <ShortName>Note 13 - Leases - Components of Operating Lease Expense (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>71</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R72.htm</HtmlFileName>
      <LongName>071 - Disclosure - Note 13 - Leases - Maturities of Operating Lease Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-13-leases-maturities-of-operating-lease-liabilities-details</Role>
      <ShortName>Note 13 - Leases - Maturities of Operating Lease Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>72</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R73.htm</HtmlFileName>
      <LongName>072 - Disclosure - Note 14 - Commitments, Contingencies and Guarantees (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-14-commitments-contingencies-and-guarantees-details-textual</Role>
      <ShortName>Note 14 - Commitments, Contingencies and Guarantees (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-14-commitments-contingencies-and-guarantees</ParentRole>
      <Position>73</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R74.htm</HtmlFileName>
      <LongName>073 - Disclosure - Note 15 - Share Capital (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-15-share-capital-details-textual</Role>
      <ShortName>Note 15 - Share Capital (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-15-share-capital-tables</ParentRole>
      <Position>74</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R75.htm</HtmlFileName>
      <LongName>074 - Disclosure - Note 15 - Share Capital - Common Shares Outstanding (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-15-share-capital-common-shares-outstanding-details</Role>
      <ShortName>Note 15 - Share Capital - Common Shares Outstanding (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>75</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R76.htm</HtmlFileName>
      <LongName>075 - Disclosure - Note 16 - Earnings Per Share (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-16-earnings-per-share-details-textual</Role>
      <ShortName>Note 16 - Earnings Per Share (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-16-earnings-per-share-tables</ParentRole>
      <Position>76</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R77.htm</HtmlFileName>
      <LongName>076 - Disclosure - Note 16 - Earnings Per Share - Computation of Basic and Diluted Earnings Per Share (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-16-earnings-per-share-computation-of-basic-and-diluted-earnings-per-share-details</Role>
      <ShortName>Note 16 - Earnings Per Share - Computation of Basic and Diluted Earnings Per Share (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>77</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R78.htm</HtmlFileName>
      <LongName>077 - Disclosure - Note 17 - Stock-based Compensation Plans (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-details-textual</Role>
      <ShortName>Note 17 - Stock-based Compensation Plans (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-tables</ParentRole>
      <Position>78</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R79.htm</HtmlFileName>
      <LongName>078 - Disclosure - Note 17 - Stock-based Compensation Plans - Total Estimated Stock-based Compensation Expense (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-total-estimated-stockbased-compensation-expense-details</Role>
      <ShortName>Note 17 - Stock-based Compensation Plans - Total Estimated Stock-based Compensation Expense (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>79</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R80.htm</HtmlFileName>
      <LongName>079 - Disclosure - Note 17 - Stock-based Compensation Plans - Assumptions Used in Black-scholes Model for Each Grant (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-assumptions-used-in-blackscholes-model-for-each-grant-details</Role>
      <ShortName>Note 17 - Stock-based Compensation Plans - Assumptions Used in Black-scholes Model for Each Grant (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>80</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R81.htm</HtmlFileName>
      <LongName>080 - Disclosure - Note 17 - Stock-based Compensation Plans - Summary of Option Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-summary-of-option-activity-details</Role>
      <ShortName>Note 17 - Stock-based Compensation Plans - Summary of Option Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>81</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R82.htm</HtmlFileName>
      <LongName>081 - Disclosure - Note 17 - Stock-based Compensation Plans - Options Outstanding and Options Exercisable (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-options-outstanding-and-options-exercisable-details</Role>
      <ShortName>Note 17 - Stock-based Compensation Plans - Options Outstanding and Options Exercisable (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>82</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R83.htm</HtmlFileName>
      <LongName>082 - Disclosure - Note 17 - Stock-based Compensation Plans - Summary of Nonvested Share (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-summary-of-nonvested-share-details</Role>
      <ShortName>Note 17 - Stock-based Compensation Plans - Summary of Nonvested Share (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>83</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R84.htm</HtmlFileName>
      <LongName>083 - Disclosure - Note 17 - Stock-based Compensation Plans Summary of Performance Share Units Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-summary-of-performance-share-units-activity-details</Role>
      <ShortName>Note 17 - Stock-based Compensation Plans Summary of Performance Share Units Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>84</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R85.htm</HtmlFileName>
      <LongName>084 - Disclosure - Note 17 - Stock-based Compensation Plans - Summary of Restricted Share Units Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-summary-of-restricted-share-units-activity-details</Role>
      <ShortName>Note 17 - Stock-based Compensation Plans - Summary of Restricted Share Units Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>85</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R86.htm</HtmlFileName>
      <LongName>085 - Disclosure - Note 17 - Stock-based Compensation Plans - Summary of CRSU Plan Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-17-stockbased-compensation-plans-summary-of-crsu-plan-activity-details</Role>
      <ShortName>Note 17 - Stock-based Compensation Plans - Summary of CRSU Plan Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>86</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R87.htm</HtmlFileName>
      <LongName>086 - Disclosure - Note 18 - Income Taxes (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-18-income-taxes-details-textual</Role>
      <ShortName>Note 18 - Income Taxes (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-18-income-taxes-tables</ParentRole>
      <Position>87</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R88.htm</HtmlFileName>
      <LongName>087 - Disclosure - Note 18 - Income Taxes - Income (Loss) Before Income Taxes Earned by Tax Jurisdictions (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-18-income-taxes-income-loss-before-income-taxes-earned-by-tax-jurisdictions-details</Role>
      <ShortName>Note 18 - Income Taxes - Income (Loss) Before Income Taxes Earned by Tax Jurisdictions (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>88</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R89.htm</HtmlFileName>
      <LongName>088 - Disclosure - Note 18 - Income Taxes - Income Tax Expense (Recovery) Incurred by Jurisdictions (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-18-income-taxes-income-tax-expense-recovery-incurred-by-jurisdictions-details</Role>
      <ShortName>Note 18 - Income Taxes - Income Tax Expense (Recovery) Incurred by Jurisdictions (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>89</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R90.htm</HtmlFileName>
      <LongName>089 - Disclosure - Note 18 - Income Taxes - Components of Deferred Income Tax Assets and Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-18-income-taxes-components-of-deferred-income-tax-assets-and-liabilities-details</Role>
      <ShortName>Note 18 - Income Taxes - Components of Deferred Income Tax Assets and Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>90</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R91.htm</HtmlFileName>
      <LongName>090 - Disclosure - Note 18 - 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/20210131/role/statement-note-18-income-taxes-provision-recovery-for-income-taxes-from-the-expected-provision-at-the-statutory-rates-details</Role>
      <ShortName>Note 18 - 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-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R92.htm</HtmlFileName>
      <LongName>091 - Disclosure - Note 18 - Income Taxes - Income Tax Loss Carryforwards Expiration Dates (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-18-income-taxes-income-tax-loss-carryforwards-expiration-dates-details</Role>
      <ShortName>Note 18 - Income Taxes - Income Tax Loss Carryforwards Expiration Dates (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>92</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R93.htm</HtmlFileName>
      <LongName>092 - Disclosure - Note 18 - Income Taxes - Reconciliation of the Total Estimated Liability Associated With Uncertain Tax Provisions (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-18-income-taxes-reconciliation-of-the-total-estimated-liability-associated-with-uncertain-tax-provisions-details</Role>
      <ShortName>Note 18 - 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-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R94.htm</HtmlFileName>
      <LongName>093 - Disclosure - Note 19 - Contract Balances, Performance Obligations and Contract Costs 1 (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs-1-details-textual</Role>
      <ShortName>Note 19 - Contract Balances, Performance Obligations and Contract Costs 1 (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs-tables</ParentRole>
      <Position>94</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R95.htm</HtmlFileName>
      <LongName>094 - Disclosure - Note 19 - Contract Balances, Performance Obligations and Contract Costs 2 (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs-2-details-textual</Role>
      <ShortName>Note 19 - Contract Balances, Performance Obligations and Contract Costs 2 (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs-tables</ParentRole>
      <Position>95</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R96.htm</HtmlFileName>
      <LongName>095 - Disclosure - Note 19 - Contract Balances, Performance Obligations and Contract Costs - Changes in Deferred Revenue and Contract Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs-changes-in-deferred-revenue-and-contract-assets-details</Role>
      <ShortName>Note 19 - Contract Balances, Performance Obligations and Contract Costs - Changes in Deferred Revenue and Contract Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>96</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R97.htm</HtmlFileName>
      <LongName>096 - Disclosure - Note 20 - Other Charges (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-20-other-charges-details-textual</Role>
      <ShortName>Note 20 - Other Charges (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-20-other-charges-tables</ParentRole>
      <Position>97</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R98.htm</HtmlFileName>
      <LongName>097 - Disclosure - Note 20 - Other Charges - Other Charges Included in Consolidated Statements of Operations (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-20-other-charges-other-charges-included-in-consolidated-statements-of-operations-details</Role>
      <ShortName>Note 20 - Other Charges - Other Charges Included in Consolidated Statements of Operations (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>98</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R99.htm</HtmlFileName>
      <LongName>098 - Disclosure - Note 20 - Other Charges - Restructuring Provision (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-20-other-charges-restructuring-provision-details</Role>
      <ShortName>Note 20 - Other Charges - Restructuring Provision (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>99</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R100.htm</HtmlFileName>
      <LongName>099 - Disclosure - Note 21 - Supplemental Cash Flow Information - Cash Flow Changes in Operating Asset and Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-21-supplemental-cash-flow-information-cash-flow-changes-in-operating-asset-and-liabilities-details</Role>
      <ShortName>Note 21 - Supplemental Cash Flow Information - Cash Flow Changes in Operating Asset and Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>100</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R101.htm</HtmlFileName>
      <LongName>100 - Disclosure - Note 22 - Segmented Information (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-22-segmented-information-details-textual</Role>
      <ShortName>Note 22 - Segmented Information (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-22-segmented-information-tables</ParentRole>
      <Position>101</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R102.htm</HtmlFileName>
      <LongName>101 - Disclosure - Note 22 - Segmented Information - Segmented Revenue by Geographical Location of Customer (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-22-segmented-information-segmented-revenue-by-geographical-location-of-customer-details</Role>
      <ShortName>Note 22 - Segmented Information - Segmented Revenue by Geographical Location of Customer (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>102</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R103.htm</HtmlFileName>
      <LongName>102 - Disclosure - Note 22 - Segmented Information - Segmented Revenue by Revenue Type (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-22-segmented-information-segmented-revenue-by-revenue-type-details</Role>
      <ShortName>Note 22 - Segmented Information - Segmented Revenue by Revenue Type (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>103</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R104.htm</HtmlFileName>
      <LongName>103 - Disclosure - Note 22 - Segmented Information - Long-lived Assets by Geographical Location (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-22-segmented-information-longlived-assets-by-geographical-location-details</Role>
      <ShortName>Note 22 - Segmented Information - Long-lived Assets by Geographical Location (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>104</Position>
    </Report>
    <Report instance="dsgx-20210131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R105.htm</HtmlFileName>
      <LongName>104 - Disclosure - Note 23 - Subsequent Event (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20210131/role/statement-note-23-subsequent-event-details-textual</Role>
      <ShortName>Note 23 - Subsequent Event (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20210131/role/statement-note-23-subsequent-event-</ParentRole>
      <Position>105</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File>dsgx-20210131.xml</File>
    <File>dsgx-20210131.xsd</File>
    <File>dsgx-20210131_cal.xml</File>
    <File>dsgx-20210131_def.xml</File>
    <File>dsgx-20210131_lab.xml</File>
    <File>dsgx-20210131_pre.xml</File>
  </InputFiles>
  <SupplementalFiles/>
  <BaseTaxonomies>
    <BaseTaxonomy>http://xbrl.sec.gov/dei/2019-01-31</BaseTaxonomy>
    <BaseTaxonomy>http://fasb.org/us-gaap/2020-01-31</BaseTaxonomy>
    <BaseTaxonomy>http://fasb.org/srt/2020-01-31</BaseTaxonomy>
    <BaseTaxonomy>http://xbrl.sec.gov/country/2020-01-31</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>126
<FILENAME>0000929638-21-000592-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0000929638-21-000592-xbrl.zip
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
MG43\B>X3O-S\0K$. %[A=D8CZO+L+(;:@E_I'CGX"%YI\Z@1N+PKV36Y9.]
M ^#=8A*JJAOX"KZ;N5$7U?C7\+U';>:X!/[K!1AH!'KAN4!@\T'ADTF'?FP&
M?._Y'3[L&2X+;WOS.^LS'W^#GT"Q\:;U-QS>RV<^R>)UA&WF,M"#>+%SZKB(
MBUZ84#@V39 [NG2O8P<^U+H +363])$V2".MXRREHXOXO4?*+3 .V<0OW8\I
M+_V !0:X1;DB3Q.*DA>G1&"99*(_4S*DU%Z^[-&9CKVXK3F.O1@*RT L?X(/
M+@M+0RSN_TMXE .4-:)B$ "G#QX3EYXAON #O5Q_@J^416PW9.C&ZO*"V<SB
M]/<X'8B^"(K!@$ ,6*$<>91EC@+R+48IOB#6R>6!7B/#.2Z02Y@YZIZ);SH!
M_!D 0VT?81H%?L"A MY.X"7J>K < A=OXON+^@@%D23;>B=FP'$M<N*$@6J!
M> .K9]RC",E7.9)25.L$$=7M.<@IM<VPQ@7*,_4="582^OD@\\\PF0GKR",6
MF[*H;@6HA96@ %\+ O^'7B>1O;FH,G)5K24\6DV:@BVP(H?W@C=,,&IZB_)#
M9EAN0QAEM<J!FPDEC%H))10=8GCAT0>6AWKL3K=U4T?EIJ]T0U&2H'6NUF0!
MEDP"LB,KBEVS11D 0SP2Y.,BR1:E7U(U<.09,5ZCQ<:2,(#J"P-M@=@M&10Z
M1#%/YC[Z)>&KQ#$(-;OO^'%M7ARONM) EB593K)K78AX<263HT+#Z *:&# !
MEH6V K\/;+  +S NV(&%?U#8+N''I$&$/5QK6:6&.-Q]D- .QQ3;&+CD(:]X
MD1@4LT_4,W07%T"!HJZV.U?I:H]@,9ST^5] 3Q-]!C^^PHZ9NR2%P:-UDW>-
MEL6>',R5I*^XCT8=X'F.P;@\+Z5T(8LA?,#P "-;(?L]+'$4L76Q$,R%?^?K
MK^ \V'3$?+)<X2RJR0/"Y"T<E&I7.2#+W'!1%J>:@5>X]Q=6>&HL7%8R*MWP
M'F1]-YFJO%O*UC:9^F+SV&PPSW6#6=0BF.KSA.0/:;-7W;Y7+9'R-=WV9M%
M)[_MS8)D]FVO%^UZ626;7B4!^G#A^Q4T_#<G,7QL/?" S1Q6]"IH<U0AK,\N
M_R^M%OG"J&5>DP=]#'@^TO\$%!S1:Z(.2*O%'R3KC[['9Q>_E@]^I<1Z2C@=
M40%)"BLGM 8H*\D-G[,J"4@N[66]P'A,P0D\>,![=UT;OL<_-\W%LI7.;IJ+
M-<W%CMA<K*%F/5JU)11*PB,([X4OU?W*"KS+HY>:AFZUQZIIZ%8-O.=&YV3A
MVK+AK;1Q7E=8&C6J/"#!Y@N<5CLZD<%ZQUN(T;3%$^TP^VU)Z0@+I%5,@+/M
MC-?K2OVN\&IDF:B=,TE[O:R]X.K9<5!0W>\QVNKS'-KK%*PR,V-_-AY@S?)/
MVN!39WRJ;947K@557-6/7_:(\@["HY;PR!L/C+QEAH2YA0 '> "%6KW*ZS-H
MPN(,9:!YO%50#+D&6>WUVR--.ZO#6%MCJRZ,[:)[U4;Z7J- ]N[OW*B/<93<
MUVB0 T7I=)T5<;CI-M[^\))?Z=).**1[VBW$LPI>K8C4= ]/28T89'5"CD>
MAF\'^(ZU:_DN]BVSZ_YE])K:9H:X=:/Z"Y2\?EMJ']8VO-'_]=$CN0XN&A-0
M)];E.@TIS0PL_ER4AB1Q@(Z=35?>O%CDDHPLYX5?T'IF>+>,-UWWL@56UR'<
M?7\O2I$NRN^3U2BO1T"RPG)MD02%C:TD^A*5>0NM>Y5HNK>X@R85-L%:D=?E
M);<"Z?6#G#X'YIGSI&?V#"03W@.+?X[7LUFO*Y.H.T.MT2JE^E<=^!),;_GE
MCHWJ;DJ_)7?AO_]Z#(8>,YGNSA]UK"#+#R=XI9[U\;:7]>RV107>+C[T.K*<
MK.LIAG1?A+">3J^E;$/H:4+Q.4Q SXE;1Q:6CU5DN0CDPC)#FQ6M%FPZA&-Q
M'BD7'Q[4WS7Y4SJT(1BYP5P2OR ^Q"G?R0LQSA-6;_K$U7;X1'@DO2C_:J^*
M(B\*GM%TM#9J-,5D1(N7J>KT^N)"H%H_)B![ U@.EBE5T[9A.1!B.>C4&,G^
M$DG$=P>2?5F(9+M;')*>Z\=K=SNVB;>K3?1OOH![P^LMX"6E9*WN[*7$C):B
ME%5&K)P[$GO?E,@2$8D]F;E/19Z#LNA-P!V@M7^Z )E*TJ><2PRIFXV<J?![
M@IX;SCQ--0IAUYZ-$%((D85--V3[7B\UL;O,W;@8G;UAWV@\7$77OX5&:/\8
MCT'BA>5$#FUXQU1,W#V3:+,/<D CC&.FT'943>H.,G;/+!G_;>F>0D *H7JY
MJ4N]OJ3T,O:6V1^SX_>LC9T-XY+\!_,"W2)8@M5BN&@+M;6%I&OD&JNZX]SB
M4<Q*@KUI5VYG'J4O]?H9N_-4O&P.Z(2^ME[N[K]_;I9(LT3V6R*JU.UE-./U
M-2QIR^+QZ?.#X4R;E=&LC/U6ABRM'6#49F449SL^4L]_<G7;FSFNWRR59JGL
MMQF4.HKP5MHIVY 'ZLPL^NR\-DMCO4*JI/35ZM;'VZ9V98JH/H;I[X +EA1W
MO488UL)"4KNK-"NO67F%;I8F; 9^H/%'(P ;NP!-[36.8*'+Y22L4J[;329F
M&X;503$IS#!XQA$L+*PG# ,0^FI,L(M8+NDIO"-[8;G<A<Y51E"KHV1<M'6B
M4YG\+@WH4CEYJ4CM7L8 _EX4>%>TLMEIB 6W8_!D.KH?L^M,N@I-H5:X K+/
M57SDH@L;V=XAJN)(A"J3X:4!79^,A())$%<:J\L5<5#^^GZ_U+TP[2_P6F-=
MGUW?AHZ%]Z#/\:E;VX1OW(":OS!]R"Q>J?L3\PS+\0)WG_R_L)6HTFY:B68X
M7([SE[1(Q H2X\6&,!9\XR5-+,^R1/6.W<M>A4,RO%IU8F:ZEMJS2'&IJ9D)
MM5</?NY[[U!,IZ.7Y"T,H6)R-_,S_="2J+VV**%MH6V-6*=N?ALKZ@NVK991
M4QE5>&>O+77;>Q28+(4 9UO&4Y6EKOC M#C4*JS^D%B3,]<94<^#%:E;9$2;
MNF)I[J.D])O2A+D()BMEU1:KQJ9ECR??ASWAHN5DK6TH2O:'*@F,UCV"K$ER
M.^ORK!6EFMH;J=Q4.UGM[0F58#J(UY7HB\*BHS6/(X/:[_>$R:)UIE2I/"\/
M['*YV09N'E1FZ0 :5%NK)T,$L9 IA!Y-U&:3+G];=@Q?=/WVG:)"MOZ$N68"
MQ9GN^G.LKT(M"_O(8P#!=>:ZM>CF.YM9#'Z0EN#!L[X;&'Y8W\>8 *91]UM]
M&9&P??@-V[?JL2R;6>#"TQZV/K0]!B+#0Q;"<BY_?7]@T'_KR<%=U%]VHR;*
MKJ(5[7Z_(RS:,NB$]1RV3[H?8+OJ3 !@72%@W6YO;\"^8Q/G9TYY[&B)9[5?
M'/?.I2;S?W$\;_]2"[VFTD(MKNYG"8Z7W#SM&) \8"4T#-)@DA()!9J@1-,M
M.;?')E*%I0/ZG47(C>%9+8#<DJ\ZS%Y)69@LQK]<3^6('9N0M!((^:*=140$
MT\=02X]U2K*<\6[(B=YA%VN=A3&+&IG/$@L._1P#_1MKQY)[HXFW4K=?69I[
M_3-,_PF$H2UG-/(BGQ/\S3$VG_=Y.^VE:#5BM)E J&2LH9$5S^IS!O>3F<^C
M$6@8S"B<.L\TS$YF=I.2?(P 45=8@[MJ&E6AZ[++J-AEVE+QJDF += ]T[2"
M<B:+%4U1&N5AV_-=6_R?77AE[^!(I]T1!D>T04?KI@8ATF<_#-*=53G;'6&T
M1.LIJE(@I-^H?PA%!V(X57D715=S'P+E;FIV92&4'47I[P\EQOF^VH8SI4_Z
M*]U?--O]@2($4>MKZQ"FS[LW>+NC=P-56"]94P?%@/?-L8V]"3B0A=6J^ZHF
M[X!P-?4A0.XDXT!NBX#LMGL' AF+-^^_H#OMOE .^_U>*J<W)]X;OMWEBMMB
MA=/N]S843@[X'F)I45_H8404LAFTS8:ZV3+Y88!FH*;0("JRDBJ/60$-I@$_
M'_I$9R[,SD]3X+-%\0,>DDP=<&G_Y-_#F#-P<.</X&SZ\-OG_P1L-MU&^W\)
M7_DX?YK/*"]+CB4* Y^ZR]]2JL(G[41?R#>UKZ@;6K@0'*NBG%PNY82"I&J]
M3?5[4I3+(W-? A>H$+AX#OB%O>*GM&8$:\03.GN*W-_P]4Z*=GFD;C_:"1LY
M])4-:W!2I,LC=K]0W:,3V-1]G6*L,8PF[::=T-:WY;<C=GO23NB'<'?XA&F7
M1^Z6WWVU/5^W+&K^D_F3N\#SP6EU=U-Q(-R8]=0-/^FDJ)A' @^FHG#OJ,JG
M[;3L#D"(-Z::K&FGC?WNP(:X19/:D;6-W5JYV/,D,G0=73JAML>>:;AYQ3C?
M-^K?CV 7N\_.7A$BV8+ME!#)+. 4C,ON ( BW&&TU,Z@W2X0&=/DF6VZ]: S
M\ZL=-1J#,::.S1O=[,4+H:II=]L*4" !_TX0#@<Y \F%&J+=&:C=P8$@+TL+
M/3F"EWF[H*&.U01BMR&_TS#YD#Y2]YD9-&PU])T:SMCFH_Q#MP*:)6'M7\OB
M!+A&_3G.XM@($K<N JBV6Y6.VA/;YJZFK"G6DJEP9)JG--0JB^;BY360UR7U
MO&F^V=^K+)J+/8C>>@RL6II;EF.@\N=#?EP?\G.8B9U)0X3&8DF_7W!<-/EA
ML,<#^X$]_79ZFEVQ*=:4-?',!'PA"*<MS\(0%D<$5?EH"*>LC<(0%D>$NT=#
M.*](/U++8O88O-9?=?</BOG^T="[\1?&XOJ#[JE(^"'X"^-IO?7CW/H*_"'X
MBV-BZPD"]97_[]2CNFM,@ "?Z#.U'+YQRTP"86BK+;=/90D<1@)5Z/NJZP'Y
M^JZ" TD@=$65_M&D(.]"^)G:U-4M#&V84V8SS\=[7<\T,Q'$>\?NX&36PL%4
M$'M]O?4M?WV7P\%4$+N"@_43SJ.NB&TX"+V[S3W]4>5Y&PY"#VUSCWQ4:=R&
M@]#+VMQS[HG#(M?RDQ,,_5%@;>:U'9)0M^7$8?W((0\LA:*Q^_"@NR5K(65)
MEXH&OT)RSV^0'++$VUVALE;:ZZF.^0!;PRIV5G _^FK[NCUFF.?K>=0_$ FY
M)_2_.IV!O':->2L@!P&=2S')/>&BP+2ZZH#.HXGDGMC#D97U?+\\0-L^,YD5
MH(5]I$;@\OR[SZ^\FH#YQ76F89)1--AGW<6>S]X#=;F>@ZF"M34M\O\.G.GC
M/'V \&1V.K.<.:4\\G\_PQ$V_82OW[[$2-KM)/9/KT/78BT/9_)@"?8Z<7H6
M0:,JR)[F<-:.[(D]6Y+L6D=N=]NG2/@4'[=^A%>$A%=[2K\[.$'"5ZUH8@3W
MGERJ>X$[Y]_]2OV)8V9@0EO(!'B@JYP@#ZK6.H?SH"/D 7@MI[@,JM8_A[.@
M*V3!*1K>JM70P^-OWJUM?H=_,M!:[.>T8?>DGB"]JU8YN>BMB1V<4Y3MJG5+
M/EJ+?9J2:;VYJ<M:^4N\\9>[FMI9"U>G[=D$<V<H[B6,C0[::J??S3CU ?<G
MN^)\;%F3NYT4"-*#-=L!V4T*<>A" 9VX'MP3 _)1]YAW/XKB,2 V#X[%C'GX
M__L4-./9+OU.OX+F,<V(S8CG/>*^U3:311<PFXR-YGR"IPDOL@GV0K?GO'@E
M^,!8NH%7V1PQ6[<-IEL 0'2XY1$P(62&U3%M?(39Y#?0._")GW]YY)*7<OBO
M5["OQLUOCZN_S)MWQ,0R@U%)S6B<&?S+AT$P7),7_GAA_H2,PY,S:XZ_T!E.
MH2_5$KS) +*9Q8N%\G)'OSTFY_[Y]O8A.3O.BD^Z@165YW3I&#.=T?''DCCX
MXYUNZR;3;;(RK21V=.=$T$<SQA[";S]'Y7,(INXR?F$U"=3CY[LD3%CU*RS6
MA)3@H" D.]F0J!%:5%56L9R46PUVNWR^.*ZUJ* :P)B^P^NDN8SR(C%D;#E#
MH U(L$FGS(C7B$7*>D!:W5RR]_X?7S^UBJI'EJCN3)Z9&\ "P&GB/'^( $LP
M_HH@:HN?R$3WX'\F 4C<8(:>':&\4A,7;R[U;E@8E[Q,F#$)<0F7+<$K$[CV
MI*5DC@*\QT@8_(Y#1+@O9^/+S^8U;@.++R<*Y'7PI_ 5OC@M+"D&RR^P_["=
ME["1CJO/F G?T6?'>H87K\BMQ\<63;5@&^<:OD0E0H&_4ZXL."">%TS#S3?1
MAT[@+Z"GSZ&^"7%B[I(BAF[;CD^&%/PAG[JP-H';7&<8U,4.\?Y\\99+L;(5
M(/J?@"%!; /W]_#XOP-SC LIY$."7HC#$O[ 7HR)Y =&6&9$-JZSB <BRT8,
M0/*7KX?Z"!:TXW*MQ1UN3AJ=>UY2O-:Q! \"HD A!'E9Z#A4:AY=\BH"<;=B
M "4$@H8:#B=<:<PDU1?X(_=TOZABRK"LYXF2U,,%40':X3PI&E&19XD,@U#@
M"@("9".Q+"TV9:$^N%G2VEWE0$L<0N;RVU! LK'CF"_,LCB9V/*X*>(=_W99
M6<_C^ML(RZ2&-1O?B&*^#UP0/\\ V9M3W<666U/4Q[S7=5'2](4.75[^:Z/H
MX[;1HV)45YI&IPFWJH^%36=.6'O[.K03H&E!<:\7.@,5P<?B8'A)<0(1H3IH
M8(XV7[.V62C6JYIG]<*:&Q8'3^]1G2#Z5V1-#*3(.I5'DK ,G)10,@SKPH^H
MZX9&7P\M4MP$+XKGQ$"-6V,I\7#T4%'%U+!J77RN;>MTWTGBX*]/F&2C2P(/
MV>>!4@0#C\Z5Z85\!#_IF3G@P:0S%(A;'D?EO!Q- [9"ELI5LU3.SU+>72%&
MGG#KQNF*FGIID'7L9V#P\O!<IYEA&X.5GQG7\[BRK\@77JN8NQE220BK0H0Y
M!M["O0=?,$#O/RRG#. A["5)J9H0TH6SG1 T)W#!#_T/O 6>*6K-XF0N*T46
MDY=,"V&7BF-]7@4XLT4QUR*?N(BHY]VNVG.$%_Z^VD!,<)Z]K[!1H>:]B__R
M"GT!QO/O1SRJ'OTJ.-M1U/C'E*GX6<$_& R,MWYA/6(<)"4YN!,_+] T39Q\
M(B=COL6@5PW)^BVYWU*5^$<1R1Z8_>"PU%)125+UMJ1'G2ZIML;=VYU.7YB?
M05Z]:YM9/UWX;D OWE>X%C(F-G;ZXKP&=>U2W EQ+%>>9*<O3BQH'X4$#ZX#
MMG^J;YR!@L8U\J;?)H\_.^VVX!"K!<:]M78<>A5/+LH+:,%H[I#K#30%&;NI
M:+9KA.9VT=U 4Y#CFXJFIAT!S4]XB)Y5JVY!5' $GBZVV]?L#E +1S6OZ I.
MW(L4W=)0S2F^@EL:18IO7E2_VB/\![_:J[E8NVDNEMI<+-%#(+$5XD_]CAO?
MSQ@!*:.3RM;N6=6U$,L\4VP?6'.DBB%,2?0NB[@-)8]%R3Q-5'8U2,E'GGKU
MY-F+M8=/MKT]3*UP*I,YY4$M)/N61H;'@_:\:!QEFE0";87M-+O8US&Q]&QT
M<"W^RO?PK'Y+%\18<\C]_:]M@Q303%/>/6[QO<H[;:G=S=@IL63\C]/"5"Z[
MA:G65B1-W ^^/,S.E9YJ7^JK&1OBU; I;(H2$P#WC6+J&%:,*6,W><I].3NP
MI&0UFP@4@6=6.NQ-P')7C";UU%XV:KTQTJ@=T,T9.QC6L%.FR"%:A \QV8'P
MX&-]&%?&E TN=<2EPL;&43=8CQF-J4QJ.#S_; QE5EJU,]+JS1%&TT[62 JT
M172DUNB+#7V1T1]J]$6C+XZI+W;U^,YY/+[S;-U;O W[\E5WFP/+(6K"2IL=
M15LK7IL9IJ)0R96&U];$K7DUV'\>&94\V71M35RMH:/U=B:!'HI*%,\^5+2$
M12^T3KO=53)C$8%S./PYY4E8_51K*UIO9U9C"?#G$R)A(6!-[??5=C'PWSG3
M(;/#,M(&O[MJKFJC>I^CJYSF;S;FUE##YS<4U^N&E)!P+M1KBBK(HMX'DY)I
MTFVI/2%-'GTZ@[6]DQ2=+85OCDN)+SIS-]L;L:6FV99.3YV919^=UYWHR^)Z
MV'NAOP2Z>(R[+4468OQW>$&'7U(;7B91%C>IV4_VRT-9 3/2%4OXA,V>7!W+
MV^W 6-R(0.G5">42%)V0UYU:,1LQ[VR3[SO'I<!LV\-B!$_4F-BPQ1XSZGW[
M\Y?P7OQ.6H@R86NVU(O3[,**VOVZX=MOJ6+6?Z2>[R]8OQMKH9_?K176H;,F
M7NJWUK_IZZ,S\E]T%]N5[D2\*_1IZK72^UR\M^@X"OM=YL]_U5E:^\&UZW [
MO)<Z85W,!<"^6*-7C_#/KH./V+ \#1\L4TJQRJ+]M8*5>#H&)=.B,$].W%3G
M9(A1F(\G[KBUGX]7.3%*\/Z$\M$]D=52B5\HI-()$:D8CU%8?75P.I0HTI<4
MNE3[^9+5TZ-X+U,8+SD1DU.P_RF.+.SG?QZ%'@5YID(]NI]G>@@I0OB_AQ4T
ML8-SII,P(0V>)A2?BH>_=SLD0D\UZ_9[$XDRD1>?%0P&XEW6H)]^4E,A+KG.
M;08#\;E3NY-^#%@E+GG.< 8#\1F4TB\-%UB2'C-I6.27^UYAA3.EH@HXXK.;
M+#I7"'WM\4X+;!DZ;TV8P5&M N\\*G7;EC\AY8K8"U/;\J!S:HAOW=^O82Z.
M978T[=00W[:77\-;G."@#+3TH_4:(Y[->TB2H"ONX:EVNNFG\U5KN91V/P>$
M+F+X=]1!5RCZ*JSX3BU6?1X"[!6G6".)>%5HX+N<&D7$08DDVEM:PO3[_<&I
MH;TK K&&O#BJJ?36&A*? /*A)I2S:T(D@7"+K<F@!W>ZN54Y?.O=N X(N<0)
MH&VQAIJJ:K5P_/+@OR.^DL1=; 95< /JH?-RX+[%V5_#>]NZ5^NA]'+@S=>]
M,LBQ[H$$PG7?'0R.X0&EUJ&\M<U%(<IJ'21QWMY WM\9V(5C/8F7W;F*$U 4
M",I44O;8**]Y3W&\1$&AD\ KU3V*8R<Z?S@)[/;Q?\3ACS-9Z 7X3C&ST1:1
MZW@"<J!S%$=.M"L^">0R>S]MH<<+O^X=_CE-D=_'=1*?X]>2?K^LNHC!F@YX
MMY1"0\NQN)I0M(I:044CDR=<+&9[6]G;84Y!J#;$R1%2%FZHU+ZZMQ6M,VWV
MB3IWA'NNMJKMO>NLFDI%[+OB#EC91K=HG J(-8MC3@KW.<]/$,0;*F$,JJ[\
MW[6'$@:7ZHK0/MLF<?CHI"2XV,V1T I6ROGB]D-">U57?#)O@<3AO=[IN'*E
M[W.$N5S5$PG;LU';3XQZZ[K819WW)[[C#=6_VF$6X_U(\,IB]GFFE(-MN6'"
M1-V6,A T72H9HWJ0,6>ZH##ZIK6S6)%S)6*^/$5A,D=GL#-]M*Y$_(Z?[D?W
M@0]N(_7X';K_R\:3<F]\";>QW6RYC_MB537%BKH6IFS-(SH;BE5R3THH>X-S
MHF1Q]R'$N0NBKJ9OFUYI\L43G+4SDJ_=T9O[[Y]7%N'6-K,&.;OMWI;[ !EN
MK!V!A$N37*[5%-]?R98YOQ7T4G O[%JT6 EEN(94/>J5&#*Q.&2XJ78$FA2G
M8L51A3HB7JJN%&[LVE70XA/S#,OQ A!FFKL#IJ?T!JHR4,IJ@QD;,4^K2]T=
M,_N:X*-RLMKNOP//9Z-Y]B*NB<*]8;L1QZ>DJ)83\9*LA-=S_:]76&?:#8G'
MGS9JQ"[?*)U&R1*SU<V[@[[\/5A23BCNU[""0/3Y;_S]+R#5NE44FY:=\!;X
MUX,Y]W91")(O=.CR[HZJ(A%<\!*)X_*) CE='V#6H^O11+<LXHR(/Z%AYPP/
M_UHF/)#(!)++E5 ;-\N?5U^:-^\DHI/?_MX:ZAX\/W.=9]1B.!KHI<",O@=6
M3Z?4-2C!0X6)$W@4R&3KH3N(G=D"SHTK\@00S0+7F,![,!R#5T:.RP'55VR#
M80"9&4SWRJM$6O.B:/F#VKY*2@LH/0NFE$#C^1POW9LL"2F1EPDS)AR>$4JQ
M24:@%8$FQDI)+]^"CQ/=!NK#_TQ7?P'5C]\M^?,_A((Y0HM #!B<^62D&]P0
MA(09NXNJO]%==J*'M_&1E:YN4N*N[KVOF(W %44>^:J=1AWRPGR@"L#+7/+,
M:U<!3&5/JOM<,$R0 )PN)B!7Y#YP$Q+#'Z)155'.D1@9.7=&EO-2&*%LQT^
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
MD=J]YB1:1)V^TJ2]B1-UM%Y6M[B>;F]FP_+@.C/J1H7S*5@17NCX#'FJ-:I
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
MF.R9>/[<HO :\V:6/K\FS+9@FALR@C%;(WW*+/C29U/81]GTA;C.5+>C7SU
M]IHH\LR_^.^Q?].,V(SXID;DS\!XO@ZKD P=R^2/DB<^UC<8ZSN.)85?2.21
MNFQT0Z:Z.V;V-<%'93[N8FG#0EZM;9SL/<R&#Y#TF7//=D-03[0 WC%\]>_
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
M?=3UQR0</#"L^_IJ#AY$!*<+M)QG3"@,#I]\5S="XQ-I;O!R+3!++NIJ#\
MG7Q#0&2!89%C$SFKK]2 L0C>B.8AH1L>?H:G G"]^",SV-(L<R%" \+L9X?Q
M(6$CBZ:8[VO!39O_21>4\O$J!H?]!F&@NHL^&(Y'7;2+T0.^#G(S"O$,?-C-
MZ9811+>T80EA=#B,FH>3>  NK*8Y,1VP-CR&Q;7Y%('S(I3XYYALAT9Y.K/
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
M9H9!1*V9JO*TR_' R'CB4&TF+?=NEX1;1=V^C\X=S@SHI/I*CR2JK]E']'F
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
ML"N4VW\L-J?0"M@\:H)G6%:.Z5!$G/-.9XR 0B_9!*X9"9\0&;LN7C3%9.,
MCY_ 6.,IP382Y3;N'%!YWWIRDV+88EL>#_@.MF,6Z8T &HZ=F8BR]$0G=[&A
M7L#][>0G.1YZ]4C@@ PO9-K=Z":GW=6DCA_R1VE2;_T$&U9B6N>YQ:8TJ-%Q
MV:M^S!USR=B\65PM6:/#Q/="85?FW<LH('2( &4-'3"[6CLV)>@I<0G3G<,]
M@!KE&A?V_WJ#J[M JG& ZBY#]^*K!PNCJ>UP+8>$(7;,X*0-)FIT73 P^$8G
M,#JU38[_3AEJA8KZO.D76$VR6'FQPV,Z9)'NL=J"A;R7ZA.'SLV (YT.2-P)
M?WE;:)N#XN25]I-/[]T@]"/T5^@XEB]P"EN+C^X_XV$@Z"VJA5E$=:"9V1]?
M4QK?Q232%-L7&LY_87Y]_N\LW_:OSWB]2C_[J^WBV,SX]]G7LUL*Z@-_]'\+
M/J$#C+]_!?_\Q9YY_G[N+E>B:Q3,!X2@FSS[2<GSJPPK>LQ -G>T$0;N#RZ,
M&3A4-+->)M(<W)GL^@6VW,<E^\,V[/SJ?8G6&'.]8[TV;^-6FSMW\3YV^I&J
M_R$+L.7W,?_R1)431HYGQOC93Y_,/WC,P67NLH'5$;Q.YHR#6:.S"FE0<Y<9
M8[M;W <+*5%S]:]/X)A\L%9,'9*WT3=@:0+^]5BQN\FOI57UR4Y90DWK:8E)
M2HU,XA>RJ[NU&Y?%I$)->FT%#P%X& Z6P(!ZTVG#*<>.<HM?[S>]:%X5*E15
M7G'OH%K=?'&E494KU4LJQQJKFL&]:=^KQBK'I&+&;F\J:>+QK$8:8\(OSU1-
M31T54KO_YO,I/%[=/N96E2!]6CT4UEC99BK\XFOXJZ8?IO@DT==8W&8J$_[D
MW['1)M4G#:OE=YAHZDZ#2:-4UU7@IG/5?:P8XTYUY[SU\'O!%&72J5:=M1Z^
M===,O9_Z=K"2RN#NGZFI]U/?#J_G0&?HM/CT[5K?#J^'Z_*.6I1.<Y5N!K]X
M75-&+6ZHYHK=#&Z?[V"T,ZR^+RIYZ@JY5=D#0ZE339, !"_Z3N\7FXRYF\D8
MJSN=<8?>787*HX[8A-_="&[8] @[SZ*R3Q )A^ 'CMCO_(JJ+;]$!XO"W=?:
M5)\<V=BUTGJ\<X6//*&:RK&3I RM<0A=I9\3J.2G#'?[.;GO/9N\$DSD^A93
MK5@U2U*71JH_^UYPEF4;\;$D#%TOCN/S;SV/LN/6;,35O)&B<N+WDRC[F-1*
M_0*??6WY_F;I^4]H>,YAI,E/B&BPEL/D\DFI<0W'66[R;:ABCHN/N>IK@,,
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
MJ#IO"A3@&'TM2:4K;2@E^A)=3/U:M9#S.7(NTT75TJH[K"I^F^0;X#2U%^!
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
M9HG!!#U3(G&:]<JTB:D"8JI C]7SC)-73!4H_9#&$<=U?2PKHQ9 QQOE:3_
MVXVA(:8*U%J@U 8:_@THIG)U4P7XB<'CX'8"-Z/@&!C+([52,=B50I[T%B-;
MGPP5@9%]B7NM<XP:(;Z+%E^SX=/!6.DJX;+UL2&/QF5;Z=KN'.D,_5@=#<V^
M,J5[I1%PV44*4[:<^&ICBU;*TGL$%MKL'AO+IGJ1R)I]58-+@E4U]*%VD9BZ
MPFGNH=,LQ'?1XA.PJOWOOVOX--!D=2I:%6M<W"6U*JK3X;1'O8J7+_S+- ("
M\.A6#8!FEI[%)0"/+@" 1JQ'K.?Z (]VJ1*PJA?F8(@HXY:=#!%E7,CB1)1Q
M.3IP209 1!G7Y?6)]8CU7%^4(6!5>WV(Z&-3GA@BB+A1'P+KYGJ$S7[YPK](
M(V ,!;3NC1H 31WV"%-;P*H*6-445O7S/JSJ9P&KVO1[+Q%65<O#@E\IK&HN
MV7L,5O7SI<*J&D62;!M6M:.]5XJ+]6%ROB%+XOLY1$[IDV.Y/*-W&T(  P@'
M4SL&<'N,NRD8XAMZQA&'GH%K"Y,Q]AJ,%>S@A0V6)_3@/*QQSVG:2#;SQ>O2
M\]I2U*IL:'FDY.:8J[S(<S=UEY!WEIOQAJSYW(] \1W;FMD.(J[69ZB_4_4=
M4YT<1W5Q]3M5'>J%;VB2M\,<;]_4?J;(A[;YV0_697V4QURG^^N)@,&[CZ$+
M+7=1U_N,B:SE 6HR[P-32\@J?F% PM"!GVWP0:S@82BU;7=R/M%V:VRWQ-+S
M)?;!V(]@*ZG/\KBVTXC5V7UN>[L"O;&\'X8,!+YEV KNY,P*6-R"?TTBLP,Q
MF<4"OEE<V1\\$!)*"Y!6UO_;<VNS7BT574;>H'7L-2X-WNG'@A#^LP)S22,
M#SQ8^BPF<FN]]KUO]@H^XFQJ,Y5&'NLEL6-R;2_8Z7S=&LKZMCQ$'X6C -+]
M0SUUB;@+4ML[VXFKTA;Z="/5QS6$,LM;?%!T#+(@^G<V_?'W#\TO,'HTO^!J
M@Y37<#@.OL2'9>$4 1&SY"<)I%,$(C Y/K7SKS&7!OQVQ60!,5F@MRC##4P6
M>'V%HP7*J4=/\)DO47VN#>2[50C;L2$@; \E"$Q9&>62-VTM[6I9JEX=8"C]
M&!^_I[0(>@I'I2NR,BDKLTNJTJR'/2?C5_2[\#.+575RRUE!IO0 (P0:RKXV
M/=>UW2N8NIE0POD1 #8W!6!3W,MQ6TB=AB:/-8%)6=UKNY3C[8C7QLWN5$H,
MG2_=UBM-1_)(*UMK6LM*+WV+]-\1/ VIM)"\LQR]6]U#SR%TTHVR#1MEEUKD
MOXF]T]-3AN\RO_/\);$%Y&][NU$SV@;\%:&6"+5./8(%0&CONJ[ Y(\T =YR
M 8MK. ;N4>-U\Y-:>AJL":R(7AY3'S*-6.*D$B>5.*G$226ZQ/$-OV<Z4%D+
MP5[I?]QYP,K?? LYM&&]JOCK@/B/]IS\@.:5MAZP9E7:+X#_#CWZ,=H?0S-S
MM$$;W^DO:*ZNK58J)0].T$*?D\JZ4.KN4%8X+6'MM:;TO[V(*6N]W<3%?>'U
M->+E@5,Z$&MQQQ&M]^ZXY2BV/;WK.>+(K+Z>(Z[1JK'GB&=/1,]1/3U'V9__
M^X<H&-Q;UOKE&SO K1/YY./R=4;W/S.M?XU8$K0OY17NMD_6AFKV5SC&7SG>
M_,^?_N__D:3_3A[VUO*QHCCX1/SD._8<=P<>^Y_)$M;Y+^3&0-$&BHH_JO#?
M@:X^DQ9D#KO""?[Q[/V'=\\D>_&/9_.QJAKF2!D] X-JL^_;@6=HZG@0!8L!
M[*S!MYGOV .VP9_]I Q'VG9IA=2<0[ ZW1*LE"!X? +!AMD$P9.48*3]*,&3
M4PA6*Q'\QG:BD"*65%.*Z2E*<8#DF)[SB#Y1,52E)L6H1O1IRJ&JIQ"M5"3Z
M$QRC\TUJ7LJI24*MJ4W&YK.?2IG6I07G"_PRI.&+"^&+C^%+8GCA=,]4P(@G
MBB?>U!,35X,Z'C2E<7JP3Y^;[&^,QYD?WFY>@9V/9(\*C!_FEC./F&\_VTA
MAHV9-.!4"(R$.(#@K]'SW$/"VB+;[ #-;9OR$H0J_#[+10REQ"+GR,D^X22J
M@FB5Q$9G$8A>* +080(1/3X6_&0^7(AFEWV"O9367HA@-/ <I!66!W[GSF-2
M;#L["*(M=%>6,33\\HD%;N@&= $-_XJ$#]X"&1(%+/C"R S81[^8OHHLE^#L
MXD+IUP8L)LP&<5P?N,V?^:?BSH%W^'0\XUP,U/%4T[0VCL7>].5_ *6L*\!2
M\V@> RFU:" 4UK'/$_KU9FMIAH;VV].=S)K;28A-^'[XD.9OHY"E46!WSJ@=
M1I.S*#*"S/H]I^OYKV_@F,Y_?/OIR_:?BQ]?2,^W1BVV+#:F?KPH@,<&+T3C
M?V.-__M;A7[L#Q"A]!;S,>W?7#;=>;RC/DPIV%N51$?2]RB5ZJYZN)1,6NS@
MKBKSK%ULS8MD2+NR[6Z#7"K'>JOZ)PXBZ'KU0L_[S;&^ZKEZ(N!^UZLO*;63
M2L3JK@T$YQ"<.O<?S_1G%:KCKNL]K<*^C(I -?A6Z\,V0X-7ENO(7WL!H9?
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
M\( C?+?<B)TB"/QI;P.P)QE7,I3N:+JEG?:;)T*;L_:DQ>BK:PMI(]G4<K@
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
M'G%*J$$%8Z!7@HWJ$:.$%E3P7J?3NG!CZO1>DW]V"B53URN^/I 8=P61*>U
MLB186.18ON23N>?.;<=.QRKB).00FT(E$H3VRD*8 OCS##X3;G#2HC>WZ2^?
M[/"!A_P/__J3N +DI0K(R_FARLGVH'3O=8MMWL6O^E_+C2Q_(^FJW/MEU<2;
MIGC>&(.;;?&N:8]TFW,Z3X[5WZ8I<17M):RJM0QOS71S6:^T26^KN GCW1;D
MU-GZ)7$=9&E&X!1WT04!-^,(%-EEM  K';0 C^11Z1ZWIM??5<.[TG3#^UB>
M:&4O4BJLK ]#=W[V$;71CJ=\!1(E][^^:8JJ_YA.*&4S!)OQ02^Z2EB33:7L
M[4LM"RW-B9X6K*MZI;FDG1]XU<9$_ +Q)IWR&V&0#<^TPBC$8<!+B+%7P+:3
MY^:)N],*P/5CLZ[BHK)\$K,':A\/J*N5$H@=C!\XIZ!PSY)L_6KB+DIXU")O
M7:/:362]3VGK\B\3V/75(JKKQJZOX15Y%N!H<GNYH>]- >,7$%'82YLLMD.$
MP7S5),SO)L-<X":M;,?!JPUZ7>&38$WF(?I>O)L+"_XWK(L:*9-.E3#Y-LS)
M]7V(MS'P[L#&BXKP =X</I" E!JO#$MRG+HH=;TPQ[89 6;]%=D^B E>S&#\
MYS@'.EHC^^H3EU8HKO@F"N^G8,=EKZ#HJI-9U/1#9+D$H=J/; J!;X4XE4!:
M1F'D$WHL0GR+CP->;Q\#__ )G-D!60PET,T9<6SR& O!#MG?K<!S84=N=F14
MU^+5H7EH\3RYS[W(6618L)T[A.O&;[JP!^NB4MT1$'SB 7GC0+ "H<S:M\$
MV, CT HDA3%\!H);X=_C& ?<(!]U"?5Y'?FP&!;VQ%)B:[#@&RP$DF8;R?'
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
MI];G<6^CM9KSX!K,/AK&H,H:KQ+S-\7\S8Y7CYC,.7BLQ&3.X4[FQ,^8FEN
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
MIRY\Z,>%T#ZH"LI-U*1 UF#EH@J WX#>:UJ(9KL^=@#RR!)7$%,G28/9C1G
M$QU6T>[XX3I1;JF::! =;+<R!WHZ9(GUZ!39%$!)17/4-9;. *+\?47UY+*G
M8LGU2X!H6^SY-[ .*0.0CJ;O.F!@ODIS\,= 3[++B3>W\"TKY.AF6'V4.R^&
MSXM^\1J*UB&(FX_"S;I\9SF86R+1'05K(O9=X;%;(;.B1F[,H;76&]BAK0"W
MDZU<NI[,N&I&E\U-QW$#;%\,K%W0OMU)UP,YS?W_IFN-G3C#(GQP/8]U(/:H
M%KF.Y!B+_$,O/K%>N.W5H0<9QM(.2ZA!G"VF'J7-<[3C A1\@/,:#3L"L"X%
MYI-IV?1HPPQV28_4C D4TWV'HUDVONV%D!;_;5=NVB!@*[EDN62]H;8RS'3D
ME?0Y8&HG>0[88%%+6_S!3'5\YRPBSZ+OH2D5Z<M1<IP%>4'%S22'J;O=!V=7
M0=*.(EJ[T3:8:P8.[Z="%,(K/-I! FRX$.202<EC"$86X$JHR9G3L^S-L-ZH
M591N41$;H"#LM&5KHGC!B P]N,^'!U+E39N/X9:4;L"QB2S(B(1%_-I26J:V
ML8>-NUR'&IK;SKN4L[B!1UOFW/2\5WI)QB9(-D>&I9_I< 8K&#8I_ &V/C^F
MP;XGI;NE+<(YH_=?Q'/?R#+[O<#.WFQ ;3--! X)QDBI-"XLY%1'^A?>N[55
M4^D4S S+)2,QQR)7P.*S78AB8Z:ME/8ZW:FYCMYPQ8KVX4-#,6T=;;6%[[N1
M-4B]**"J'SLYL0!3G*GY9FY[9N/.D3/SHF9!<<_^+88#:V52$A,L"AXF.6OT
MCE]BY?&K"=H7_MN@D8$A&AF4IBX7!H__17MRTLSE="]-D=#0$23;E,U4W&N0
ME.GCL'MWSNP/4K0BIB/>R1^._Q#GV@=4$AO<H<0=8M]9=F:1[/#D11>'L[DL
M!]F85DS,/;X('*I)>-)@"&G(I^*.IQ6S2X\O#:THA)$0@9RO(T^TWO(UAJ80
MQD(:LM(P&U4T%8XO"\W502VG<8]C5^1"@H!-:&!C.TGK8.**)AP'6K]:16NG
M>R(=HZ%#+W+.>D-D(V('"OJ;4+*J+D_5BMT<CB]VP]>S&%_\@,=Y8<#F^=&C
M(*%J>Q;KBXE1T9=HBTH[J==O0L7F2TL'(>-OI \/J&YE7+&0H7LZG;]JOZ&3
MU@_5Y6_"FC!DM6I'H>-+7*L.?.=VA0M0X,'K<-3L&S$EIO)T5C$HU:_?MK^8
MIO91=XVS\MO(N?HYS,[IK30'9#2:<,?@JOI4S4] J ;'8=!?8RP$3Z _64\'
MH3+F3S]&/ Y ) /285A] 23NGXG]1'YE&2.'(,8=4F&,#.,@S/)@'89<(VYQ
MYQ3.1H?AU(Q1]&Y,]#P$%^[<1W6BC0Y'!L Y')G[E4<.X\R8.Z][G)N-71N>
M!N@\NP<APQVKHAO3P[1"!$T-5'YSMDG6'^EHJFN6D7B(PN:.'P)7NSH^/)#V
M8_4M[C! _[K'+#L>&O_^ALFGUR^6?_FK^6*MP_6O9/U O,RXI['Z[L?;Z;_*
MX=Y]:15 '?)LVBU J &$H[T0)F_;#YI_0%(;&WRNBL'G![OI:?,L._F\O.RP
MAPS@P\BS?^)'?TG$.QT&,4\WKBN$IT9%?BRK=[<0\$KZNBWUH _<=C)!=XM.
MR@PWF"O<EC^1H1/MD"*#@[ F+#D^-;4Q2G;W4]5,21(NP[-5P$:[@+V1A'0V
M0C6IXL3ZGUQS\3A%^AE+*TPDOHU-+C\,B3Y;A[235.$#DH3A?U6",]'%S)=N
M;UL0$\]X40M.D*M:9*C-#.%*@9MVUE&=F6>GC^)A^_HA0\_>*JWJ33UKDTJ#
M6ZY'>F]9?[ZC8AT':5L^F2A.D#]\^%D[-0M=I>T/JVJ!/_^L9_S+.O+Q06F'
M[AT3N60&6GN8-5Z;J7/J/<D8#>:@M7V:U^LYU<#/\TI&H0V93)TRO#NPNSV:
MY8]#ZY@ _6SQU35*M9%HQU KK249#3P;JW0JVI )U2G+NP.[8V:63$;KF 2)
M:HG_C+,\I"$%&[M[[UVXV=AQQR,Z4@CG"67Z&WG$CIN=[83_GTU?!&B[#-!F
M=H_,4BJ*1/:Z\QRE3<%10"D;27&FM!%A+Q'VJA?VZG(>W=L+SY2,I.L2LS.F
M:,E8NI,,>+'4F39&TS4HIFBUS.#(Y12ET^FZ0+0R)0ZG8:<$*YU0UQ %X9>E
M_#+AC0W$&VNBNX3+)5PNX7()EZNQRW7P-$"1@E#1L"D9""@2$%KRQ_A# 0?M
MC14NP-+!@,*[8MX5?S:@\*V*R%55!0G/JMY[HUIL;#)?4'J0[D&?*S_ C^UU
MFI?R%NZ''7X/A!7GX;J5+I<*+=&%@]=?5_2AT:8?P[^5SNC"QJ^>9LQOCMXI
M_AV>$1S<(%T8J<SQ*^N1WCZBQ],K/*$PA%#4:Y4^0*%H1SV,A"34ZY@^0$EH
M73V,A5#4:9P^0)%H03E4HEL_S=/[<<J&49+2NX',[Y_>/YF.4P'2B[C7Z:$N
M5"[;ATO;J NMVWTK=:%XNY/NLF[J'=%I]\#JC2C<"AW5CR'J;Z6,K[RI>O^4
M>@N*?D]C=6%B1.'ADM[J [0PVG7U.S<V]O57%_9%AW7\92W6C^C:E>8CI#^7
MMVC==EW-=V@-0.+\K\L;CRRLX&L8^('IH P=VJ9W;(RX+:%I+_),F][RMS>%
M5=D/*[<5=T-84QD3M4EHS!1^5^V1ID['6<BV[ZH!Q#[: !!<VJB:,IU,:@-Q
M[2SN A#!%2P)(.7'_X16\'H(>51NNWL5+"<MWT1]#P1-X=U/28T[:6!F:",^
M.^N!&]DP!Q 45!^?H(8VUGD 1J^L#])>FDUGW%;LT^G,. RBUT^N]YLS!_O!
MM)Q[\^76]2WJYGQQG7D=ZHW22F2L<E?KU,AKD>J0Y%%P2*Q[^"V]V>^?S#E]
M!^WM_8T\N?83J*ED0\A>Q)I^__MG\A!\=OS "S'61N^\(X[E>G<$X"&+HIO*
M]"I7H#+$V.+$QS9Y)VM2_I/K>>XSHF%B0E3!@E1G2 UM-!QJ&/Q._"-%V1&1
MZKB?/M7X7>CYU.1JAIB8QZ?F %<DEVJ=R^!O3N@#O-'U-^YZ;06(TR=";HDW
MQW*^1[(S#2 1R'+9K"5AEE,L83E2Z2E2O3QXMG6Y@:>#[KI2%*V<2I5P/262
M\19ECF1&"<F,]DGFFKA5!N#7>.:"@)WT%<]%OY$YL9[05?)_MORY[6(OA<3S
MJ3MO0M$&/&^BNN_;[6B);,?^S&0)RAKI>DZK0'QIRQR>"]M63O>;2=\^/%#8
M4N)SCSG6AQ3)#AZMEFC3%<T[(W"WR>8MK9'CAE,/XV/SMU6K*Q\(5KUUI&T9
M;B[I*]1UGVKIML&KUF!V@AG;"5[63CCE$@[E&&7:,WFD5^U)?*Z5VODV >U3
M>2*K!<-)3J%8FY=FPM>F+ OJUG.?+!^[[6#OK#F+1(*+55ZF-K!=];0/*2^P
M&U??":AE=?N#V9]/J&,\,%%1&J7W[*/!L1+7&G%;I)"UNSUI2J/!!*(5_,%/
M;I^;(UE512_XXW3&^)SJSEO@HTBF1Z30>;!L&Z[9?H]M?>FH5)/EIK37(^-O
M2K9+D+2&=Z-9AGT.@[;>LM.)0[K("V ;N*A71O^X*.^O=M*H6GC-%S>#B@]J
M#.1C#K+DKHD7"P]("=K/:Q?D)EB93EM(@L^3>3T('!6_ I%],&W3F9..6[=D
M2(R5:RV]"!EXM:,,ST0/L8#(BD3M=>@(:,JSC4=\.AD8F<IZ&"<J9L/WS$3G
MTV&>OXC&./5 R08?HC2H7_8%'XY.IEXCK-M^.):S(+A<+I6KD>5L98VEN-,O
MZ8-^BC>"8&>+''!PK_,VC'4<]&'&]JK4-/!54)RUN0&2N(O<]H)CZ.=HQ=0/
M_;V1*AE5'D^KAH;/JDJ&+U&_ W'(I;M<^FB[>(_8)O31M!P_R!HP0IIVPX6J
M;%1V_H]8VMJ5,OJX7(*^04=E[3[1WO_4[@55!&AN!WH<.[+X5HX@QE7[NIQM
M_PN^]/#-J;*,"A'X;M5T:WA UE'I]"%E?(?DN.;39)W'>^*M,96\4HE+NOZ&
M5]0BO?@?',N&A>&%Y-WWA[U1*7HCK]ZL](U?2'!C^BOJ("[(XJ?7WWRR^.Q\
MLAQ8BUB=-P^LI]T:.&[^+R>!?J2JW"*.T6B4+8:K#E-KN&"^=XS+ON(JP(5;
M#*"IBCJ>'1V;:8(-2V0OQX9;?W6IJOJD4]Y\=IZ('[0H9PIWX?UX.=+4L58%
MFP*H6L.FEJ0IW$7]XZ4V&\]&^M'1J2-JRHQ;>7HYT=7)N$MLDG*AUD1MRJ_P
MU55-5ZI@4P!5:]C4$[5I256PH8TJ+9Q.L:DG:=R:X<E4F1AM(?/9F;MK@I'4
MAK(T-KC;(^PI.Z*T?6\=D.H)Q)A?=CF>S7:VA0-!JL75,;\*3]5V=ZK#0"I@
MW+_O C.@WC,K(K]QUQO706<Z*DED(S(_FAZ.3/++JPE'VE15C\/MUO'0CB,B
MK>.AMR17SU&]%KP5U(D#'^<LZ'(+3M'\E?W[@)*Z",[)N(>:.O%$\<3S?F(<
M^J"!$!J;.##5 *,)3F"_2N;"W=#I7<GRQZA\:OWWG7756E[*K^:K!(K7D#,Q
M%SQV^'1]]Y-D^7X(>&_5GG2'?7U,;^%+OVT69GNEL@A$&H3+EIZKS.0L<Y(B
MW#GP]XDX(6&3YV_@7L^<![[T; 4KZ2;*3/*W-RQ^D"[2MU_?W;2%_5@9I]^3
MAOC]E=3RBS)Y6"&8P6 /$Y8[XT44\<C<?72L:'PP;,+>]G !H;EW-["T6H-I
MM)]'W[8093GRKE7JC-YE:$^;BCO$]% )V+;D8I!1(F"%T,501*['T%K00'?H
M+.#:W^ZD?UQ?WUY)F+<TQ[RVC6<Y<VMC$SRVZ9"UEH\3GR/0_DIX"_*](@[J
MK[4%C)<>71<6L^M)/O&>K#EF16'RG6<Z_I)X'IL;'>?I40$PG3AO,UB9 3QW
M:9-YG'SE.CYX61Z;/$U_!SB28W%XU .)LNVB7+]@Y?ID%XI.I1Y!HB=G  4%
MPG2<T+2C,WW0Q\AVVM#86L=?4K5 <\H0WOP-#P04-QVH2KO/MZ:??P92H74K
MJ2,\*U$G647]O++F*T3'#3UI:?ES@ FGN#+* U# *[>]W>(3>?#HR0T]N%&G
MV;37Z/WM;0BSG![$)82^@.F\2BM,@HVVY2XEA241MO3TI>5E&V1+_P%RHKR
M*NB6?%+HTWQ)7*/A.K1-*OML%4AK E*]V$Y06++\6US.0&V/79L>*8_4;PE0
MQ\U2Y($0W'/\@,ZL1Y#0C;*HYHK5Q\;U\$>F8=O5_YGD62IQ"W0W;3_.&?;!
M'+.6UMS$DYLHU12A!$X"F$%$*R ;.Y=/9Z2B8O4)?!WBVK3=Y^S+.K<;CU E
MD,NYVV;7[>,8O0T\>I=M)1\8L^EO+ V8>.O+!Q-W,. F<>)LJP[3GMF_6=(@
MC\2_=2"26>,HMCG,(/"LAY"E",/""+8$,3T/!8Y9;,^FOS4"%CAO&.YXE=PG
MXE'AI*._XWSX[8T@H',SA)WNG\19P YY!SLXBKWT]>&/:./\B/%4M'065FOY
MZWEM0$VMR$Y@)I4-KT:K! >8!\1A.06P_L"21;4@$9O!OXO2E=0!=\99[@2Y
M+6I!X-54JR9B&FFQ!;4A04E0[X,9EF!.4!V+.*7ZS%])L14,-J@[-R-+"A^:
M/"5ZNL0DP&7;UMW=+1H'*?:;+*<,W>K(1H W,],?C_(O _<2F4X5G;L,GE%E
M(1ZP$:R1UXN$%U1NHATC>RW5X&O:MN )-&<BH*MMO8=0? <KOAO7#Z@,N0\8
M!I5,NC^BYSH<_9=:!?_M8W7&D^6&?B9\@J%2"]^47C&/Q '7P0;UA!Z#@Y*,
M@F?Y-,%V3C'?F!:5?K+>V.XK(=1K:&DY@X'O+3*D ^N''E=MZ9V4+,5DIV4D
M%LOF6/2M8V*%0+TO'XVT.7/5P9+<(5VT")],C[*#HVWP,N97P,6OH#QL#/-L
MS4?Z!>I_G]@V"X59\T0UQ9G0#R"V=H9_H,8^N5P=U]4&LMTPP@UH6B=@$K=5
MI"D J8&V()';B[H-_%S@/RK.9+_<F-CJVJ'[2^0DQWL-(]6"@^*5])E=EGC#
MT=,9T:)\<NJ-VC:73)D5ST)5YE8FK=;HZ#J93G3,JP38;.)'BS8E7DM"8C>?
M+EH:8=@NB1MS0]_T%R4W3WU1ZENI@E*V)]IQXW]89F \^_'>AI$&3$6C%(^+
M]OP5(<'Y;RY)(1SU@)$#W8:2P!T+[2 J\W68DL%9.!@92K@7<:?-4MYL_\2H
M_%7.@\"3D_8@,:ZT2I P,R]J8DV7<J)-+'JH* 7F"VD5-/5*+0*-:2\\$DV
M@]V7.?X #8 %VV^KA=?ZU9A#HU8+:?,AJ+,M=NWE^.?K/' QN@B4' _A""@C
M0FT= :EC_O$".^N7[NFRO&CU6&-B9'*MWW^0/J.JO/R(8:)7; !+C0>Z.JZ9
MRJ(YS-(]%KYC'IP3N-YKV?G3;\,G?>FQUBG G]T'Z5%8?%:V/?2)#,"MDJ?F
M"5R-/C/E,-TID/V$L3]M.^*!BD\#@Y3_M/&!%?.?&5/4XTYN 4WN^:=(0''P
M<O('+_&A"_#$WQYVGO0Y2=9AN 8_,+)XZ>*,3&SF],2.!OP0.EOO,#'SZ-*G
M19PL\OH,+PJ(@]6=5+;C6(C]"O>GXG(%=F)LQV+,@8U" 2O L_R%-6>NX#.X
MM:G87G3$3,\:Z+O-S<:V6##0E-;NPEI:M M/X+G^)EJ##Z9O1<NN-0<\&T"!
M=>IMES(#F1WN7%&CPL-B+OM5AM\R@<JM[=JJ(9_9DQ-KF;4OVC&/S:PH!#F/
MBRZ!B.#;!DA)>.M5V+Y#MGT3:IZU\:MH?..7#;]KV>R=&AE?^?U)VZ^*QK5?
MF:G"Y,,/'YBQ!RIC39P%.WF+ @(6VHBP825[Y0*T.$A2>ZA/LRS&OD!,O=L8
MOMUF\>"A?3?Y:\CT%*%V#M%!BX=TN?C;C#,6+:$:/FU&M)Y>-C64?4L@(Z/(
MU\C0+[+S&<31WHS7LB_LU#C!AU<:)L6S"=;-S _857YZ_Y_;\!"V)^,V$9>C
MQ%=NDQO:ID:6.Y$2>(:=,,FTB(XHLQ 2BWHG6T!=M'SI 6RKR5HY!7+"/L-T
M2#[#K%N?0<L&.XI]ABZEY'0=D"SI1*+6 5IL,,;O?UU>2I\L8B\^2+?F(R!T
M%P6! ("1='E9=.'W>&7ZMVZ![Y54U_28>8U.<"=BD+-NGS$#!9>+G>0;HQ?\
M&C52,N>T]PD]J%Q8:*[A"9;I>?2PYAG,>JJ;X\8,N,G[/C/F8-T_KPC= 5-'
MEO@!.S7!=W3;EB-K(-XYV8&X#"L!TY62W9TFS_CQ"3/M0#I/G9'2? )F-"[
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
MH<2R7&/+=M8X-@6@Y6S">'^A+(=U2-)BF>KC&@F23)ME21L[Q"7&5(6<',R
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
MCH^]X?Q?7##^KIW%)PN;(,(SM@U;#^BF-[\<=]5(KYO4KH,3O*I$<5)7EAQ
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
MNH$.*^&?7G,=>Q-[)RB_34UQ,9Y6U/-OUCQ0Y4FCCK!GK#Q561FWJC[[#3B
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
M*EQZ#0J77E/"I>3!#;1H'IB'*(?]";!?X?%.]<+E1<>!\P3RXHF)9T0?+"=
M"X7M7W \4/7&+2RK+"XI/45]8L,KP1.LT1%&A9B>\!!^#N&S5'9AA=K_,/N!
M:1^], IB3#MM\%_/A(35#LZV%;>,G>U92?G!^N1'V<-UJPZ7.EQ['ZY3KZ2%
M>,?TK@G(S:OVA,$4T.M:]M)8/%'8GOU)05UKN>WW_C^Q$RW), ^LZ28-L[DP
MN<DX4T,ET55?VS]!P7A%$$K+*:>.RA&.RECO=FOJ:*F.BSHNIZ+>]OB5"@<=
M$ XZ6>SG1"[3>41U&B).:UWJ,SD,IXO$J /1B@/1DMVJ4(D*+USQ7BXA5'(D
M[^4HKLJ913R.X:\J]E9D[T ?UM5?0;%8L;AV&$Q%!$L9!.:]%7AP2,(O++A[
MM +VQ@J=Z:UGOW/<.$)XS;XP&&.H<#"%@8\<SB5W..E3_V)6H+WW;&:7G\+S
MA,CD#X,VMX('H#B]M?M:_E.^IUNT^JK7LX4[66U_+[:B[?.LI.?Z&=/CJ)QM
M6PRQ[?1J[;'?#?Q^ZLVK,]YB>K7UC!N[%<*>>O/5>-;4*):M!QRL0;#?O+^_
M,%_L'P6ZG+<<(RXK3.AAD0^TN;9'E/3,_$!;Q,'"#QFUR8&53;%=O.R=,^4=
M1;F#HC'AP&@+!AM"%Z92>.NZ\O6G&!TQP+8@-56KG1[?<2G!E,8'6IA#?5)7
M*P 5,&LICPV]-SHYCQOIIOD'218$4\"#K ?&50KHH3@*(] [<#[V4-T-9:[J
MX>:XKYO#BH+Z;))Z-9'&T(>#9KJVGSMI1D-];+:S3>[^Z &T*1$[P&8S-J6*
M<C9?N/Z28;P9 ^#^ JO+5:^7584PJ%C[K;HTFD9%4ET977KGU@:GNF];(%;
MI(@"9TJ&!CBSX+N"USO'?A7<X-!BS]FIM;)JC+/_'(QNU0%\;2*3ZH^S9JQ-
MFNR-HWC6B!59=8)4S=MO5V.C-:=SZL_GV,3(L^6/V![\R7)Q?E(5CU2N09VX
M-2DQT$\U,$<)B@/8AD-0F^PPJMC6B'P?Z:-)355[IS;\\<?W%;)-I_+#%";_
M6O9RFID,]"G"A^[@EUY%^*O;&5:,A*KX5[?3;R;0<P&$.60<T@DB8$6-H#?&
MP(Z/:<X;$U?2C17$T2$FUXFHI'JR[B\J3[9_Q;0"IAT2ACQV']V=ZG]*BX@H
MK^$\L8^$X/MF_?AJ1>PKF_K>U'$=ZLB]?R51;ZPJB8Y62;3K):O<+;.AA@F5
MW[2*TF[OINHA3$/T;HJXBI*GHF13V/QVIJKW8N#A+TM*]MJ_IV,%L>M==2G9
MNVU<[6716)0L'66UIZY@H<]S,U>[9S,_8!6'P&TJ8:C,H8;J($Y9)C+JZN:P
M(L2VX>W_M \?:B%ZHQ3NC_6N67$07YT;NU!RFA-]8%1T\5M6W-#&X+G*]%W+
M7DX&ZW_KS^_AAMNB>O2MY5FV8WGP'2N*(Q^\K<"*U #7-43VL%,Q_%QUES^U
MYW@?FT2*'OO00VE!I3DN;"\GTX(?$S=58S\6S L9ZD/0BKZG18],L^[])Z8T
M86&)R%@?]E6%6U5J]?113Q7-%I)FAPG.IW88MPF3@('TT%[:C/_T,^PT%PK#
M&K?8I:XML\"?JT;<:B\7J6R+4'"%R_S"L,(3*WAL9S9C ?.F<$O@RK@Q/D"S
MYCZLZT\^O]R?P5\BRWMP$*+ >]DKM;Q2$S*JV3]MXZ6HAU0OAZ.*$>#"]1>,
M6C]S>AA5(^+5Z'%4C&WADMXGM>59Z7+/HF?&O#3FA26%F+6"+Y,KH.S]PMM2
MM7%9U5U>W@7JC2I6[EX)/8S1(<UP:A<HM5HNJ6Q!<:%-'\$NP0ID3YO&08 6
MS1*QAI$S1SLF(W^48%D])7IW6%'Q7*]H&78/B1Y<'CUZ!U5,M=!6N;7_'8<1
MC:/3 B9:NT:^M@C8D^/'5%WK^+82'P7BPZRH=J]6?$P.L4LNV .<U.L!MLI
M*0E'6M-I$%MN2"VE8S!(@LARN-^S\$-'M?(K;(?5&U=4ORJL@@*Y7ZO=?_84
M&1@79JS@,"T>D[5<UW_&'GU*9JS /JIV\5(28SAIIF?NN=/EI=FO-9[4*O/D
MCGH'<[3%U)\C^((DBI(CJ^GQFL.NEWM?S(&2(X6JR+R )BJK:RLO&/L<P=[U
M3!)9YG;8#QZEW>D.J1;"^T;HZAIT<T#4INHK5)/"=?95%1I[[5_QJDY>C9OL
MW7H2,[*ZM%^'\)Y6O%])/RT#>%>U1+5-=%+-F=8X>6BS?]53ZQ1L@_M7%:[5
MCJ9:._?#*NVL)<8/W;'@R9DRV:*+V6\S881;%QY!/WV>X4L>/.=/9G^A'.I;
M/XS"Y#6[M-TR1JKM5J+;B_3V^N&E3ZFV6ZKM5NWT;HJXBI*GHJ1JNW6$EZFV
M6ZKMUL72^'+;;M%?T7+EH_*>F!>KUEK[C)I4?;6:3#7U&N\"=36T-*H.H&Y1
M1ZV-F<0[RP6'%:NMYE;PG44;I[1=9[9_/*D8RE?9_E&W(JFNC"Y]LQFZG*Q)
MRU<6,BN8/I+DL,'R<?T%UDDHV;'"^*Y"'%8U4\;-(&+.G2[&N)E"D18,'/^%
M>2RP7!(BECUW/">, @L3$CM=% 4'VE,XZ<.J14AM(I,"FZPYT/JH6Q%FJ6;.
MMH9K/7UBGF82?+O00K)JW],\%HG67*>5_U>"%QKJIE$37$'!A4Z).^GKDZJM
M"!1:J#5< ZU=M3]_.]!"]6)\2J%$7N1$RS\<F[USPJGKAW' /GN_,/\AL!:/
MSO06ZZ9_];V'7\%/L&^IX]Q'[Z,'*W?LV'(_\,J"MZ"PHL!AX9LE_W&Y%[K(
M5.BBP_+[V:,Y94#WX)#L5RL0.!<)*[J,QUX>/J;2_5&8F5;O:>W)EP;Q.":,
MYAC.:^YT>'XPM]P2(^N;#P:>YOI8&8GV2&D+W%,%H9MXY>7LI;$@N+3 ^@4
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
M2<153Q1DQ.!7;AR'!;NJ3,L=H@O5DC?-O%3MI\W[.?BH9Z+6%3)APCD:"B
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
M3T(YLX[TW%E1;C,Z?H5RY@;*#2^%<E^=\/N'@+&/V"0,M% -=[5?2K=NMXY
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
M2#K:5QXN"_.QR2VOX]Z(;3D8)\Z^$V3SMY1!FF4CI;CN22/1L\"?PWJ 5(O
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
M,;4WH9R_9=P&[(@5A!Q*+5:1<9;33&YZJV>N3]&>&[H+XCMP^G D%MD<5!E
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
MJZ7:[UTFDRY3FZ6QK$22;(FWB#AH^"C#)V7X-FP-&,9A&@NL*9B_UKA:!*N
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
M%J_*HJ$ [,'A1TG,*$X4N]S8E,)TSGQAB9;8J7E3=/HXD"!YM\![MT)O'45
MYER8,N/H?IG4 M4%CGGV<_@5L.(624%1/O](W9ZY;-EHO64RO6N".R7PMSJA
M2\$*.H-VP2<Z)'254EXNEA:7[7 *Q,W>8M$?FD.S2"LD,PT8=JPAD>EA^TY,
MI30N\_*A0@X5 5V#;Y+UIYC$H]JN.7Z3D+O)Z$>Q9^E%AG#X+.I=@Y<P!G\U
MVZ(=)UV[L0ST2$L<3@7#5NL4R8_D^%[@-N9IJ<<[37_E"=.:-AXR;+=9QEMY
M&LF:3@>%9+#0O)PT&126'&8QD#KY7-%GBI+2-+TB15LG"*RC*3L_KWF^K1YJ
M:DRTVMZ5'\[:EI1;D>N#] ^.J^TK'FGRE8732PZVB!]R.Q26ZCSZ(MZ3GH2%
MCT8-6FW9G!-]AOXMTOJ)HDJEG9[WSB2D/]?3<]5_$U7-(A*:3D_@#BIM%B/*
M6B#&S%OD^Y,[*!K2?O?\YW:$V)5[=U+W[KW$@"RPNQHB!(_+D#=6"!OX_^U]
M;6_;2++N]PO<_R $]]S= >S$DB79SNP$4&1GCK')6->R9W _!339LCA#D=HF
MJ=CSZT]7=_--(B52)B6278M%1I;XTE7U5'=5=745V1C%>C4"<%AD<T;(VI$:
M(<^?!(G0X4GAJ/K"6A4UW^/-EGB.913["D[M7YL6/\:1&$XBO[;(J%Q_$2PF
M>PV0SQZ0K!$%AI,7"Q<JZBK!RV/&GV#&)B8+Q@K+\XJL/6:N&>)662<@A3%\
MP0A.P8JCWM(1AVKI\A2FK&TJC[[(5\E:/D%QI)1#FC@+;=_5[S=G5U^MJ1/Z
M$/ ,J/ @3)2GR=9WVP%WAQL"!][Y*\V,$@=KSKIK!UI!P;^,II^#"6,4T3WE
MK>RHX78>EWR_N:21P" 2'F=)SSV[RDZF"-K9\EA@4'-==IL;!W61DPD5\=LA
M\Z.D40[/AO'W)-(LWG=*?E'":_+9"L F;!)%FM8[?"3ZBC%KM/2$E^&V'.U
M1O?1B)(2>5<J=P;O-E-<;&8MP"3 5FJ1R<RW:X1#O,FN9]\T>.1*] Q^G'9^
M'8TF8H75'7&"Q]9Y[UN9\%Z1:,VU//&P;P#W_;+;8:9UP(BJA/,LT, OXO8)
M)3/8('3#2'<L)QM^ER67@FJ.(D%/]I+@9]7@O/;&*"I%/0PI/*G(T[W$,3-Y
M0.M$1AVAH_<B^#(X327&NWY#K#;5S"NQ2W!XRJD[@-./W;73CV&@ :*#,].%
M* _/3^6<9X."?I_EK19?R!/U86^ARP=SR>;#V&#D^\M;$*[6YD%^F%!F\_'#
MDW)9KA(I=KF'*=<CDK*Z+DP%U;(O7HS:%R6B(N-=FOHR\$_%80&AS@N>S ?7
MQA, @/N5[:#P)D]\;\P(>GSQ_(2H;Z;<91,S;+GS?])9D6<\--,*,R_BK9*#
M'" 8Y7\@(90]6_!*;&\$IP&#R\1)3_#@&!V6\Z,6GE&E[Y5?0BE">.C9^X%I
MEW*F_H'0A?0U@QY;5;M[XE^@8%NB4/F03!I'@<T1%"S6Y)%U+V*(1BD 3J;%
M:XGF8XR=O!-S>$2*MRD+LHJB&R&.J,'N_._$-M@*.97M63MW_/@'@/PFV.ZH
M/#,F.-,.&.!]ZDBR"Y,XE[*$::%#K##/98VD]YT*I#-,2L=;6Z(,0B#U2X26
M92LX,8N%#=FX][&UZQETQ)-"C[=T$V$8^92@/5SBL# T[3;7>\]Y06D\82,X
M\D ([V=VZCFG04I&V,!FS@\3+18@:R.4!<=-L%6<N);/X#P5*]H:6VL*AQ/?
M_L5$,EMKUV?^BVG!/WB1B)7I0#OV6/C$L2"76Y01"C4FRH</B[\!\$S7%4FR
M_.P%M&"##=RPKH=38DD(DR9W%7FG>Q+G=TI_42UJZG3H.2:8$-P@ZS/1 GF-
M=5()5QKEXLAJ/ACOUQUF1T;F8UB)V"66%94BB*5HP13QQ&!K)>3G\E8)F6^M
M: &)%@Q_R69:Z!O-EX5P(HT-D!MHX9Y<[#AL_$AQ6C/T7%T=>?$ND1\EO>&T
M'M/<&[6L;9TAM_6;/TBOZ9/ -PC@!;6WXI65$QVUWW?&&SWGTZ8OF?4<I;&+
M-1$VDD_%8B/RCIR4G+I$K8OV+RYAEPWN <M\C J]8)&32&1)%S')!/WCG&2K
MRO**/OT?MM0D1K$PV7P#)Z?6AI"%D_)&TG_?RS629";K+-[<.+'#7^+0NN^[
M:4,3LQ=[?30X.&N^D/N:;%AL^?7*',CY^V$&CTJM!+8>@JJ\:6G]%+_$[9\[
MW7,@NL@X.:S#%E "0F5M 76'V=L+,OG]@:MEN<=E+_K)X[(?.[<P59[>0)CH
MM?,@C0=1]T9,67=\)GN /*E;&\IF.?1UV_[38_U9OW5;JPGC3ZZ#L@:/L/:B
M39^PK$N8_P7FB=SB#TZDFUS\1(@_;CO"A@K/3(\5RC$#^4?51J-;9-VPYC$0
M-UX:O_$2;+IXT $SW.QL]#Y)TF&(5;+ARBE-;.'T!(X&^\&W(^\P<<H$SDU
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
MKV#F.#:XXWQJ&O-&8OR%P5P4T#SH721T.;[F[(.[W<-/05OQX:<K/Q#3RUI
MK\[Z@SRZOT%!671OZG^9=)]G&P[GPXKIWML02%H__:O++")Z?6'^Y"2CV,R]
M@X:R]>TBB\J]]:W0REDBZ"ZN,N5U/AP,+X\CKU(4+:Y:63;YWO+:>^DJ4W:#
M+-E=#"^ZN27WQH5N;P.E3$X,,Z?.B\O\&#X,)RI=1"XNLC@QO*P9)(HKQRCL
MSSK13./6EO7,=S+E*G-E/>WV+_.O2375E+W9TL]DR_FP5S.N%-::O;F2.:N>
M=L^O2N?*W+$,0EU!0KYX4]Q7[E]U,S7^JML]2UO!$Z\L/J1=[CL;4J81>,D^
MG:4PL9PAE3F/9CHA@UZ_.^B734(52T'FK-=C]L'@O'02+LLG(7.&ZEWT4YVB
M-P*I?"/M,I.$P7GWLI?BSQY$%_:='2\S9YO^X*HW+%VU*Y[L+S-GJOZ@?]%+
M600/HB-[DY/IS?4'[((4 _ @^K+W4IQIUO>'_>Y9Z=+)JSM1A6*>^@L_4S(G
MMFNNB,AZV$U:IJ1.>X.K_K'6EQ)(8P;'%M+82(ZE4V60EA5G9;;A (@[DGZ5
M0=H6L[=[>2R3[1YZOMK$N-$H)#FD[,.MDY$YH3/K?7!QD>+L'42QBA.2/4%T
M+\" .Y(:%2:DNV4ZZ':'O=+MT%!IQN&1\QN>"22\L[O92&94"%MNUT4&)"L"
M.P2E>[(GSI LBW!W,#*G3M65\*PIYJV$ASI8)\*S%2+3JKD87)0_T>9;0HI3
MD>D(G%Z>#ZN;9[<,J9?MLY^?#\X*SIAAA:X;:  4)1[E3[1PNQ=7O=Y@^.Y3
MKC2MF;8P+?:EQ].J;?*C0R&M.DCB,O\F(N\ZK5SDV_+0\XSN!X&ZHA]Y KI(
M&OO-*3%7^CPCI?G\YTXDB0X7158&V?%R\TO,AK^KHJ_&4&1R)O-*KXFK0R(C
MM .61^JAWZFLH2-2)N"OW]D[KLE+9^I8/H]FGG2^?AV?= P'LDZ?H,(+U-[1
MW,[_\Z& RA_DZ:2C=1ZGL@DZ+W1CR'Q)AS(8V;*0T=]L_A&5B_CQ0M[<>FF9
MHH%H\#99QLBG^AR*KXH>MT'O:RW:ZPXZ[5#GA5?ML5Y+:U9S/DSO5G/"E#2J
MV!EP,:@"!..909UE0W06YQ?Q*C8V=-P)JQ7Q PD=?O @+$>4* X:598+RX3*
MSJ\SS:2=%42;PZXXH2AC56MC]6JK+J$3U9/*3/J,3<%94^SZ3+Q@RO-Z-[L+
M.AY  <DQU(J65>CVF9SUT]Y551.SQVMRR6<^06HF/86*BMK299<&GWXN,GN8
M]JGX]X=I>/./';:8+5]^?M?1B66Y2TUG7/GEW9GX>ZD9AOP[G+0\&HQG12@O
M2QW,/D^.QY0O=J417!F?HRPR\]*@P>^[>5F:;)Z!A'0N:<](>=KF*M*1 ST5
M0V"<"'B8G'Q3'R?9ZCG+CYW/EL9$S^[N<*UA6!0_!L_=^#UE+'%B>0GMFHUD
MK-F:H1U[%&_F1SX4[!IQS613GY$\,O.7S?[<UG>//1@$2[W!<O/M9G3L,2!&
MZHV1D6MJG0FS+V:F?NRQ(%;JC94'AYF$QQY$-CL^>#2W.<P&Q ;P3!WFP('I
M[E#VCN>G?_;.^B>]\\N3WF#P4YK)+*WS[O"_DN,3YG, -OB+1P*2AR!3N18\
M\;]R"SN\8W,(A9_1_Z],/I?C19YNN(F5TX2<1$XB)P_"R=[EX B\3%DM2GE(
M"6,[W_W<6@CA[;2_=;7]8\X\V7Q1J<QE]7R3UKP"VUO2=9B9"@^^V5PY1ZZD
M<:7?1;ZD\"59,K."T>^_^)2YXAQZE3F_VFP[6!&1AW#D"JPR_;9I"*XRJ?6E
MALB6-+:<7R)?4O@RO*B(+6HO,[U>3JOF^,M,&1[,H&UJ@6M+JDV*ICJ"Y=A<
M47MAR:N"QU]72G9?AMFTEI"?E;FAMS<PBCSX6+IW-.)18B@QE!A*#"56/.^G
MRM<=DK0FB/KX5M2;O?,'Z%G,*\&C 54@+'9R-;RJ^72!4MN(NIU<GN6,9Z+4
M:B.U_L7)Y7D/Q=8PL?5.^N<Y]U+1HFJ^134\.SGKEZ2EQS>KWA:<2F3A)\VN
MJP)P.@0Z>P=$9_YWU<Y>JP^;$ %[VWX7;[']ZL,F1,">=N3ER7DWY_9(S?F$
M$-A[$CC/F?]4<S8A O8V4Z^N<F9:5\^GN)GZ@9?;"$>44F8D?_V09.611_O)
MM"QB0.=<<P5O<<?04=S>IS%<OYM9C_E\K2]*]GOW'U]:U>ZU\656*N[V]QX@
M@YM'S2??BTJ+W<V^B#) 82,V<ZT%2,Y.>YGUY#[USWL7&T/..Y1U$E(;\A4O
MBSZX&F2.=S@<K(\V]:W[#6U7Z3086G9-NLM>O[JA[:QO/[@:9M9<O3R_.B]M
M:+>V3HGF$O>>=[1DZ/A"G85$M2@1R*Z>. 5:>FWC=V;UO-Y@K:YQ.>,]" \*
M-?F[&F26:EWOLW! %MP3P]?YY8F'?H6"37>ST7+)UD>8[Z#""IM)[F9?S05;
M-4O!1&;%UXM!+GZ\9>R'9TXQL RSNZJ>=W/- I5SYV&N>7\XOF7<\@ZY-T'W
M:7;)/51WVV>%RX3$96]C?=MG4&N$ 2=N7(\7T"O84730NV0S=?65+O&)^,1V
M/U%Z7P>MY;J'D\CO8S,&E)XDP9RQX1]66*<UNXCJA)*E!OV84FMG0H-X-K4Q
MWV\!A89_F-Z\\^MH-.E0PHMGNNPUMO;,+X8&Z OM+Q)1R$MJ:J[K+T1OIX['
M9MB.QN=548*3M^4.OJ>$/7;I4*C*)AO3[RSN*5ZAZZ+1/9!A0ZG=>$?USLCR
MYH[_/)<%0[.'!R,0A5@=.T;8/]S.$[NI\Y?M_&".W#,7HRZ=1[(2-4;9@N&S
MD04]WDN*)+!1B-JL 2">@#;&0/YN7BL5V!22Q"O QFD\8<(VGF.L6B.70$E4
MSEU&LF:S?Y]%K5K--=G3_A ,X>WK([Y!95;F(#H4]KDZY&7)!DR@$BV\@?VX
M8H!R?'8=-%C8!, /]E!BF8QS4N:R6SO[TQ-7P%0@RK8&_&0<%Z5B 8K\%SY"
M^!- !T..$?KD^ )@.D0NX$=>^94_)J/::PC!DB2W7O*546FP:0[*[FJ1\ 2'
M7,9>G0GOL)J_%C$ZV'MOMNJ?#^KW8TYLKM5L=N!3$Y.RR33>[;@^PP!4+[8L
M1Y?6LJSGNU;W&!Z^6?@7JA '" CJ_[*Y)BS-S":2)S;-\"K)'M5L5]-E(6<V
ML)EO,<RL!(Y,V]/L9Y/#-H+4DCI,&]A4"7_ '+D$2)XP\;-YP@<\\]8C,64R
M;=WR(<P:%@2&SS!R-@PV@0E"F'W-OF6O==G8W)D8%?S-W@8JP0M!.T^,VYH<
M+R@A5RJ80Z&H-/_A1.@HAUWL\I"O;/Q@^K-QLG?;@B9*H#8SS'&,Z3_XFT @
MAN,_>< 2*2AV 93K97.[T*I7&)YX$XUB7R>BR+7+WPJ/(2\Z,-Z!\;"YGO&
ML00F58>^GFSP9"PF^G]POE$^/;,IZ,FAU/D!US J"7#;]2@C@S<:A/%1-C>S
M5R>QX$)9>UEY&Q808KL!CV*@)(LGQS"C)4E,F)+[4O(<GVQ@)N4+(7SKND+P
MZRCF'68ZGO9"N(R"9X6L%0\S")OB!3:#Z^6[@#BF5'^'0P!FB18,_"K&%,.$
MRWSV, J-"OC7RS 0(23*W9_@$>"\L &R*=R$)63*5!9J&&J"E$@]V9W!)+NF
MJ^MB8@NT;6@6%"UWB67!UT(K__E_PW+U^L_3Z23ZT_CYIRUXEH8(4TF=\9O;
M(:(2.J%N9OGL0WZ.>9<)SS#I-?[!K4EBC%9,'Y_);SYTCKB;79L6A%JGO)#\
MG>]Q]@'3WA0E&9[%H^@O3]0R3T6M>N83#RX&R9: !8=6+EV% AS#LWXV7<RU
MOJ@179NM6+?1-<BDZ^+BXJI;.5T;=WUF1I;^-A0.KK9(J\_[4NZF*GU@9=)4
M"(&#JVQ)77:':R'(X]%4!'V#1 ?!-?0-+\][;Z6)K0)_?9PYC@<>VE?V1^>%
M?T4=L#/GGK?\^.'#CQ\_WL.[WSOT^0-[Y?D'^/D#7/A.7N^]+MGUC$X"#2."
M%DA\P!]A_)RFY/CABO":!?,WF%WU2?PE+OG7A^1O_)$?HF=N>0<S.\G6-\ %
M>ST_$<1,?8&\XN/C]/I-;]"U76\8C][V!D;#*5O:3[?(A2VDS$R5WR6>Q- %
MYJM#PQ^+<H+?\6';$V.ONR:VLP G8-L+=Z%G_8V;#PU^C=&=Q4ZIV)RC68J=
M9"8ST8(V3;%OV7O8]S,3?$Y]SJSGA-ZY1'__[*P^C&___>X3T_;NV>"LVS\+
M!A7=O$9 XEWR34N^I;3^?C8K4.\:8ND1#<%3HM_6;F)J'MPB:8U>;,1N"+Z-
MO3KX2O*O($N_CQAA!JRGS.>;$IUY$Q JN'D!AXT8? .-N0V^V/A@-I_<*9\0
MRN?!SZ_I#^!-Q&X62\MY)?'>Y[*/V.$%&<F'<.-^'?4&&\8+[/F8LLU;QV".
MOPT^W"_O@A6A0F:]^Q2\))-K@K:-@6ZH8I)"1/ ;$#R9/KHCV[AG_T'D9B+7
M<)]?/FZP"N%Z<+C&I@SW@?*5^E6VI??FCH$0W@[A7.Q#6*?#&A(G'YC;TM*5
M/TX>KM7EH&02Q4&%4]U*C&10B0C)@9![V.0P=0CV@89!.S.761BMQ,E66A$M
MJ6CY+/<T1U'C5XZ;D?4G>9DZ,X^QFMS:>K,!DT&EM%K2:47 E "8[U],:*#X
ME1F,QFVX%S[BFY2?7[]I?SIT;&FN*_O(B[VZ>]C^!A-R;BX;OJ)5 ;PB[R_
M_F@>W2('5(I#*\4-^P?VW1^(/K<=RWE^18TXF$;P,65) '7AT+KPFV/S%!R/
MC)XI$;F=J T'7Q^RQ8 J<6B5>*":07[3%DUW_1NI".O,1_@7@O_$M">.:7MM
M1FZ21@3(&P""OF1Y0$,?4@4E4,U>KID.H)U\?!50PSZN&?#1+GX3W!_F!*Z*
M?=UJ\&:2B[ I!)O?B>4P)C&M-*TVXV633@3*&X&"KE6Y@$/W2A5E4&M[KD::
M@%MSM=$!U<(,-=("##742Q74"#?44 $PY) +]K>\4L@TJ(SU59;'$7:]XWIW
MLZEF-1V\6XB,6=#KU")B"B/F5V(3JEDCVQ@94-?%]:!^T(K<O$"9'*( BG)Q
M )%5&%GWQ"4:U>>,L==DQ98;7B%+'5SEH!]151A54U%EBC'UFT;_(N YJ@.I
M7<0CGK;@Z4%[&?G>W*&,2&$LC9H-EG6"WGWB%>CHZ\?Q")%0! EW4+QPS)EG
MML-RWL0&]_K2"$6H%('*X[1MP @FC<<I(B$5"1-+LR$L(18-S9V[Q/-XHY_P
MK"H<:8:SJLV>.N*$R@DC#[D(F]VPN99U7D/6P:^M0\L6*A$DZ2 199COZ)30
ME:D+L'QE'QKKT+C4^YA&5>3%),A#7.3'!?MR1EQ@LV;)[Z':%#?JV@86D1.Y
MDV"$3W[XR,]M0TH4'(F1A[A(Q4487[KYC\\HA%IAC@T;S>(LHZ[["Y_W+9".
MXF))R1Q$L"+"?6@F>$*(;",_0E)N/B#*]D&98?#-:,V::*9Q:X^U);1740-9
MVVA'-.V!)O;GPK%E@4(%$+1!+Z)F#]3<$VB8$O4\5@(ZZ40C?K;CYU?B/%-M
M.8<6:&+]<DUMHNG0.*>9L %3.I.\=Y_@YPT:$24%4=*\S<4=L,"]Q;VQ<//M
M9M3*J2*L !P2B-@HB(WF[2?FG"=P.S'"0B_^$<NUUK!<:Z\(8-9N*1LP0_;_
M^,>I_^2:AJG15TAUOIMQYT]$=.?$FDVHXRZ)[OE-]V*RR P:$Z01>RS(@& *
M0B9^2_F0Z?7B'_%\>5W.EX,X"@.E5]G<<GG:Z\8_8EVW8]=U S$4!$C\EE(!
MPBVAWB#^<<S;#'_1=-[I6:8GV&QZ%C]\#AHRNP_.U%\N'>I]<2@QG^V;%WVN
MV<]D9,,1, *=FN_90/^;&,_L<GDN[YH\>;<V]' &GLI=2MMT*&]-0XSDVYL-
MQDU.2AR6Q\]=&"XRW$W1!.OP+@$=19,D7@O;_=$M1]"DG:S\?L]%#M=^TU[,
MA;]HJ0Z\&51Y/=>0H2+0F> J K=RX'[_7:.F]F01F+MD0JVM&=H=?70GE(D*
MOO_,_OQJ/CD-36IJ!]B+4+HNU#!Y>)=H4>,JT3C3QJ6B?.V)<Q6!6SEP<:EH
M"MAQJ3B<QLF=I=[9:4.[P5\5WJ ):#T02[$;?!%]5K ;O-H(QF[P#>L&KS9<
ML1M\2[O!-P#6V T>U^J"*,%N\(B0[0C!;O#'[ 9??[1D971\9KSTJ&:[L*?<
M;+1L3^M((12A\E:H8'>)DB%7Y.6M:"^AKCJHU5^B3KI0OP83ZFJ!:ATFZJ0'
M-6TQH:XRJ-%CHHXJ4(LF$\T%_OCN_N;?['XH)$!A<V/*S$K&TZ97W]@.Y%U4
M(XB*@<BAY"&8%T*SS"3N;W]_-1=,IQN^+;,#3#FI1U!5 BJ,9!P"G!C>4%MQ
MU(IYU%YK,!!2<WU1+3I2>XW!D$D3U$:-.$ICE 6#*V]2D2C$T&8TKU.)("D$
MD@EQEA99.2]MQL@:D0B10A!1(B:+(=@W0<0C2V;7MAH@<1(1'OO# R.FI<$,
MPZ(*J(!JL9QZ:0 &;(ZN &I$9>H%>PR]O GL#W,"5\6^;C5V,\E%V!2"S>^F
MZVL6'+*U3#C-UF;,I-.*@"D!,.AAE0\\=+544@JU\DUJIA&875(K75 M_E S
M;<! 1/U40HV(1$T5 4,3N> O&DN'G;6^.KH62YYRO;L9],5I.("W$!GO<;M&
M+2*F,&)^)3:AFC6RC9&Q8%KK>E2#*E\W+TLFDX8'*G*A*!<'$%F%D75/7*)1
M?<X8>TU6Q'*6<(DZN,I!/Z*J,*JFQ+*8]\B8^DVC?Q'P)-6!U"[B$4];\/2@
MO8Q\;^[0H.)\\UHO)\&R3M#1>R\W%@EWWIS0,6>>V0[+>1,;W/-+(Q2A4@0J
MS>O#G'?2.%(CYOHC86)I-H0E9&\1=^X2S[.($:LZ"<5)H>IDLZ>..*%AOXW=
MY")L=L/FFLP(I3'6P:^M0\L6*A$DNT'"V39W+(-0;;FDSDK6LQ75L5N)F+PD
M(WS2X4,=P]>].SHE=&7J D9?V8?&^L/05"J-JL@)3I"'N,B/"_;EC+C 9LV2
MWT.-*NX3M TLXG3@3H(1/OGA(S^W#2E1;"U&'N(B%1=A>/+F/SZC$':0'1OR
M%3A 1KKN+WR+76+(.,-BR19W$,&*".^SF> )(;*-_ A)N?F *-L'98;!\QDT
M:Z*9QJT]UI:FIUEJ(&L;[8BF/=#$_EPXMNQ4I0""-NA%U.R!FGO"*Y,80:,T
M):"33C3B9SM^?B7.,]66<U/7++%^N:8VT70F1;V9L %3.I,\T15Z@T9$24&4
M-&]O>@<L<&MZ;RS<?+L9M7*J"%M!A@0B-@IBHWG;T3GG"=R-#K'0[<4_XA'C
M^ATQ[O8* &;]EK(!,SCMGL4_8G>%)G97 -$5!%7\EK)!-8Q !1^/@(FWLW18
MG*7#2EG:NXA_Q!)\Q]4X$$)A>$2WE V/R]/>6?PC]NNM3[]>$$A!J,1O*1,J
M8'X&[D)76**-FYP#&HI8W=WJK.X4EGX?&7_ZKL?/9G]QZ'BNV<_DUA[IW%TQ
M[><)-6W=7%IBJ_QWQ_)MC;DQXL(;BT#:Y(,S,IRE%[^-/2O(F;LG*V+[A'T3
M)NI.?+IT7.+>V@]SGDX'R5&,RH;'FPOQ,K#X#\+18\PG30 _(\PP+1].14Z)
M[E,V-1/WYD6W?(,87ZBS %?,]_B)I;M9L$$P(92G]WU^37^ "&XQ'\YY)226
M]==P=%?'K%C$+(MKB."#(W@R?82LLGOV'T1N)G)%0MXZJQ"N!X=K;,IP'RC1
M7)^^RGP ;^XT/.93/81SL0]AG0[K'QHU'EZ7NTY216G_W^_!VN.7?]->S(7?
M\#!(@@,[CUCE/_Z0=^,E9*?8IT_P%$%; 6A-&T%;-FCC/$70Y@!M"P\?IF&R
M9J</&P>3]KGB29"@\UPI2K)LM>\/)ELF[F:WMF&N3,.7F2O7)B6ZYU!^(FLV
M,_7&MS,L&VZ',.KROB-5AL&\FRE)5*BR%"IN\Z!"'5BABAB<J%!'5Z@)H3.'
M+B QC)N"[=2"#"H1(3D0$G-980X!7\&]GSZV$B=;:46TI*(%<VWJD6O38*A@
M=FU=LVL;#*I_LWOA#&;3#?OMX%FG$D'R)I!@T[ RP5;DS6UH%Z:J(JC5**PV
M6E"[%F&JXE^UYF"UT8!ZM@5350W4: A6._#7H158@R$_(<[2(BOGI<V@72,2
M(?(6B*"36"+4T$=40@W4<A'KH@/H(=8#_:HYB'7!/_J')2O!E"V>S-]H>@'8
M'14VDD0B1-X"$3262X0:&LM*J(%:QG)== "-Y7J@7S5CN2[X1V.Y1DJ@QEY*
MW:"/6REO SQ67T1X9,/C84[@JMC7K9[<,LE%V!2"#1;K1L"D J:DR%+;ZN8<
M.O"39VQ83Z<N"&]#D9VF(!R+[Y2*\*S8G-(3^)NBECAU-P;8RLW;1P$VSMBE
M CL[E*STG/WV2#M.W W"MW)3]_'PC?-WJ?A>WP_!67N/32*<JVN/965GZ$-A
M&>?EG5@6?7?";J]?'5V+%<AQO;O95+.:G@ZPA<A8I&Z=6D1,8<3\2FQ"-6MD
M&R-CP;3/]:@&?1IN7I9,)@W?0\N%HEP<0&051M8]<8E&]3EC[#59$<M9PB7J
MX"H'_8BJPJB:$LLR[6?&U&\:_8M S$\=2.TB'O&T!4\/VLO(]^8.940*8VG4
M;+"L$_3N$^_72%\_CD>(A")(N//FA(XY\\QV6,Z;V.#;)&F$(E2*0.5QVC9@
M!)/&XQ21D(H$Z'@#H0^Q:&3V:((BT,V>.N*$[FQ)%9&+L-D-FQ9VBTI!"S:+
M>A-(.-OFCF40JBV7U%G)\O*B'4<K$9.79(1/.GRH8_BZ=T>GA*Y,7<#H*_O0
M6'\8=@'2J(J<X 1YB(O\N&!?SH@+;-8L^3UOA@,^0=O (JK+["08X9,?/O)S
MVY 2Q=9BY"$NLG#!'N:]PKKL,4VZ^8]O\JCVY]>HF2_O!4YH^%L[,T)RL"*^
M49G*$TP(:3J2VY /4F<D8SI(*4A>DY822"V(4$1/)GJ^^-0V/9\2]OL7\P4^
MM33-LQ# LMF"ZWH+\*S<TGYX/./JOA//+9E@<39[J_2;/!VA[N\G?=AP]74V
M$9OV,^0ZLXD9D@KI:JW'/5D1VOR"-SO(36E5GZ0;4;07BKYHNFDQTL>6X[(K
M%,%0*M6(H%0$\3W:SYI+#(C^,);SS%3^K2MSB?XFQJ-M$+JV=^M^?KUY(50W
M73*AIDZB]8Q_ZC8;;!7P16Y<Q;F#H#PL*'L(RBV@["$HCP'*<P3E%E">(RB/
M <H^@G(+*/L(RFV@# XZ04B2F>%, H[-_A1'\$>Z[B]\BUUBR!,+BR4E<Y#@
MBH@\]H9C;QOYD9>2FP^(LGU09AB\K*YF3333N+7'VM+T-$L-9&VC'=&T!YK8
MGPNV?,!*H02"-NA%U.R!FGO">X0;-QJU3?NYX6</<T(GG6C$SW;\_$J<9ZHM
MYZ:N66+]<DUMHNE,BGHS80,;09GDB7VB#1H1)051TKQ3[CM@@8?<]\;"S;>;
M42NGBG!K,"00L5$0&\T[V)YSGL!S[2$6>MWXQYP-S)L&BTHZCU<'D5XAB*S=
M4C9$!G*Z8!\O-I('(/0I4@9,EVD9 ';C]V9#)I5<"9B=1!\+0H."LXR4;540
M&IYVS^(?LV:9?[-[P0ND#?=YMT\SZU0>"R0@BH(@B=]2-D@N3KO#^,>I_^2:
MAJG15ZCF>3?C8:51U OP#/9IIG-BS2;4<9>$*5_#89-)<:(I8#;=QP(2B*OP
M;!/=4@&0+A+V+0*I.4"ZJ(]QW&6/'\8_YNS5W%34E-INN2*(<$$4FVL2MY0*
MD2XWO(?QC]E]2#WMFKQ,'<OG_>.^?AW+XT6@J^0_/@3(5^R?\$32VO=MAE8F
M<W:!K.B<F,+G6+&'-(8?!>823 5GPO@M9<'<9-CN7HI9]@C8*\Y'TV;<8G*(
MAAT^7/Y2)DLP9:69*2OU0@FFG!PWY:16:,"4$16ECBD?!T_Y.)S\^7[;R/C3
M=ST8L?O%H;^1'VQ1A,TH"!=3QV8?=='C+K <Y(^,E[:A4<-]7!J,JSV0WE6S
MX5&(%0DK8C=/CH.>^*9>#=#S,"?;F#7L#I4"4!#RRL635@*HEQF7&%E_@N,]
M\WYH%$SQ9@-C>Y@AG=:C";Q7E<"'$*O,#GHK%>D^:G@[*?)A+ Q9OLA[V3K^
M.[$<1N3K-\ULN%>Y(XRX0>>Q!-VK3+<OMR;IF/;$,=L=*T[2>!P!7\:R;4H5
M\!4X(KW!]S$EAND%]2BDA[ARK!6S7>[8LS4P8I(7R=V$:_+DW=J0BP+TRAK-
MMNG0*=%]=D/:34T%RB:7@K.6N7A5YN;")MN#]6<7\X^ 8(FR%B&X+271E$)V
MGE'4I4;<(;6G>3MM5Q7&S^2SOX^8TV:$F^,30F<.74"A+W$XO]GZGB NBGAE
M4'DLT!]4PK'.8N#20>,H]W[ZV$HY;Z6UI=+&@%2- E+U$_CW+R;3 O+57!'C
MUF:C>3:?+#)R7>*YGYF'_Z=#QY;FRCU3W_6<!:'WQ.+U6MRYN6SXBE %<(J\
MOP#[8WNYV7) 4!<%]0W[!PS\!Z+/;<=RGAONK3<*T7Q,61) +!?%\F\.)'DM
MB4=&SY2(O3E$\\'GYVPQ(*2+0OJ!:@:!QJ4(Y,,#>9WYBL$7]WF4$C#Z0N4!
M!7V@)H!8+=^G)@A&GZ<4[*KFZ]0$O>CCE =A-7R;F@%7<9^&ER3H7L6^;C7X
M,LE%L:/34R%\T/]I&+35<H7JAVOTBLI&M&H.4OTPC;Y2)<!6PVVJ+YP5]Z#P
MF)>R@D9GJ5S H)?4%#"KY1[5",GH%Y6&8=4<HAJA&#VA<J&LA@M40P KXON,
M11U)QIN;V8SHWH0_[FXV,IQEB.&=%X7E@R3"5:C-!D=G\W!/'+(MRL(R\=^T
MZG&'P#UT% 'ME@5\-$KFCF40JBV7U%G)<X-1,^IF0C0\]AHC-BSCDX_DEHH?
MRPPWO<QP#5""989K4V;X^&C ,L,J2KT=IBP:BJGR+[G,\/"LUVQX5%!F..3)
M<=!36958_NSNE@J2INMK%BB894(UFF8#8U<SFC1:CR7P;C65)*^@1>261HQC
MAY('JMGNTJ%>&-TWB?O;WU_-A<DL[#9#("_UQP'%(-:#L6Q00'_'!E8?&U;*
MDMY%=N<WCRR97]EF94B0>!S$@PBJ$N_E:2][&OQ,7,\+)H(V"SF%T..(&L11
MA:BANV0#2RL&PZZ2)5A:\9BE%8\@82RM>+32B@>1-JYF=5C-ZB9JS!$M&3)%
M7M[\)-%&PUFM+-$Z8;EF::*-1K%J>:)UPG$=$T4;#68U,D7K".'CIXH>%;CC
MN_N;?[.;8$^8NB/;F#*SBO&DZ8D0.[8T=E"M&@AP?ZN6^UN-  5ZTH< %[K7
MS0:^6CYW[5&/CGC%>%?-.Z\]XM%E/P3LU?#C&P-VQ9U[S,=21[SHAI4&$_2U
M&@!AM1RJ>N 7O:8RD*N::U0/[*+_4QJ U7!RZ@5;Q3T97F:U=Z94/X0T<E'L
MZ.U4"!_T?!H&;;6\H/KA&CVBLA&MFG=4/TRCIU0)L-7PFNH+9\4]*"Q:@@)'
MQZD2X*#7U"10J^4RU0S1Z"^5BF75G*6:H1D]I?(AK8:;5%,@*^(C8=^$?=&-
M?1.:C'O%?3_TO4I'R359$<M9$B.RY>_-YWG3K="]D+*#%XB6%KHKZ"Z4C9&V
MV/]H?V?CX;^)\<R,K6OBFL^V%EK<P=_$&+GRDEOV>NI'%F)3T9!.<7SMV$FZ
M6EA@<Z01\J3=LD\AM:6R3O1M&VONG,V&GD6,6%E2J#X+94F;+?*4GFUYR%5!
M[-=D1BB-D=[*#GU;J%1!R-B3L48]&0\C?LH\7^J] J'>R#8@ZK8$ CZ_AI6V
MN?7[R!8[.G:X<:,#:QJ.A-UTQYHI;6& PKB V*SO$1K^IA D,FA7& WA=^
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
M)9265BE1N3A'2PMGJ%POHJ6U'%0N8=#2\@+M/54?? /_LC__!U!+ P04
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
M[0*O2]<14GY>?L.!>@PFYZP6;Q(/LPS>><99-W8L6'3L)ZG(1GN-1;?B?VQ
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
M3H4$@6Y'; )C1/#'K#=AD>_Y70L\6'^*QP;*6W&^IS-"F+^O;Z_LGN\FWFV
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
M*L:3L/#2+&(+T=4JVR$M'1-)A_A;]>65+!&/AQ&[A]3<+^E/R9#RH? G(Q:
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
MW26"AO^8L_5W$8TE.1\^JQ\"]4/P_8>-9/Q?\E?_.4^S.'L^>W&D$O) $[G
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
MDKW<"]?TL?B3?M5=.H-AKE!X&_)6W7< UO('J:_%A#\?B"*#'[ZV/?H O?@
MZ[\#:WYUCM8-:+D[P3D"'3X0LT?TH+Q&/6U<"![ ?CZPFU:"/D_T>;IQC#Y/
MDSRM,DR,T9%I;X@:F5_24=L<F2.RC68T,A^DG9%Y9%[$%MK?R+R"#:WQEES^
M H3+AH95_Y[.GP)*N$J"%8&$:!NO8$MWI\N8'GV>[F2AXQ,=GTI:W7U5H;.W
M\C]ZIY"V41?>L@/)<<\I$;G4AM7OOM!LP2*#&\^EHW]CXD1^K2A.<A4H5A3E
ME>>=2MD8)KD\=4IFJE"Y/"N"0Z:S\\WQW2(VXRMYG8X]NJ4Y>:X>P&"I]3 C
ME&6L?>C2MMO1,#2\U_!<(@#V3.F!R*J4:];MT6N(Z5M'X;KQ(9A94]DW6M>/
MM^L.G//(^@,S9VD+R@8/]/R,Q /ELDN:ZAK@#.3.3-=H?>AE0R^;&\?H9>OX
MHH91X?_G0"A1^$#D@JI*;[O\OV"5D+1UJ;N&PWLTOK:B$.VP:(>M3[(]3*L]
M?U(_OE9G6X[2$0M".[FA&)U#OSZ*F]W(0ZJGSJ)Y+Q77++^X4\=>"/U5U>X4
MEZD^S\6V3R_D'3R(4Z8LVU&H[=8+D;<THO)&B501D_(D7*;J6-C16M>[DYPF
M.=F")2J;=;7B;"WGW^M$YA/DVG< P_,CX=&]G-;D0JAJXY_4[=<_/.7% A?H
MXS #>Y=P?)K+#FDF=\<U2\/R'QHF.QY]N.6Y)T\3(2\5(7_8_FXC# ]YDU2?
MT%0"PDR4]A#%YNL2%C5KU<=4 [HH*%_'(:TF<5?JHS@,HDDM4&_S'=$2'M12
M*'ZEVGWPO:Y&(H NMCR1FS.G5.EM7-(F]GQCSFNSCB[CH]>Q2<[OOFI(&>9I
M9*"F]0#D2VRC#*P&6%'59#A"C7[VZD:C(';X$( #S58=KQ*WWWTU[F>K/@/E
M0+^1A0?@\.1YW^2&/*M?%1?-^5^Y!(S[JEEBFBTHOU^0=",K?RLNI:U:6%Q+
M%R3F182PSGL_*#$C6OQMO:Y2,D[6)$Z4&5U>Z(4RWO7R6DXWH@5\%=TL7NR,
MRU2>U%3$82][M<'4XUO8ES:A7SD3VA"C_F8:^[+]3N/Y0@%[E4,RI\4?STA&
M>Q.C[:@8WW+7F1-[GP?@D@D=+WN;61I9H;8^I\*%<YQJ>-"\-SV:#]&#YA"]
MA' [Z:.SG?0]'4;M8M3N<43M5OI"7B<B]RK'(2Y+I2V'V1E01AMKK#=@@0L.
MUJP_:^6G!!4TV&PG0HC:[3+Z7>^I!;<E>Q64QQ+C/L1M ^%, -H_5JX5<"'O
MOE;'P5 /;@?57(K6X6_@/GX-8^Y1AWXYQ(0'3'@XOH2'_H.FP,DANX7I*=[$
M<C5 %C+KSWINN2K@"J!Y<<9:+@Z4DFF> PHM5P=:[;4APP(MEPQ*$3>_W@#+
MQ8%6^ZUW%[SENGP^ZG5Q]*/;8D*/YBTOB^8>%V.[4M#@,X1H-]NU@X*PFR5X
MV7()#3GWDL%CNQA0 '.#K$-;%J' WE:I@+;,0D&Q33-=;?F$ CT[R>'>,^VK
M ,0O09RJ5V^#C#S1UO4>[$;S6-[!A2"LYH#5'.09OBPVS F=,4[OU:Z15T[X
M-NW6JFT'Y/S&DCPE&7\^7:CK_SRA8?%>^R1BJ^PRG82AJB,CD9#4X[=B=O-N
ML_Q-2: D[2;G*U; [/M%(8R4OTN>%4/E8+\S#Y Y'OV1BZ)0OY#TEDP>LG4C
M59 PEC+*E%G>9 S_K!H(,V8Q6?<[(I:&#YW=@/H+JJ*9$GF$-EAAXS_0,6;7
M:[B\_@UE.\%@Q95;YP$2=6<S*1;C-=U1=BME6_F.?"XWUW2U>4->FZSL/(!_
M)G?JII1Q7].0<HFBE$/KAHD"K8G:XA0-1A@@>#F>I_$L#J6FN9427U.^,Y?O
M/7CB4BIK1+"4/"3/D@41/R2;@F[36=E%:B>1>6?W/!L&K!_?X[1?TRA66N5#
M+D'4MJ#@=";/%)6;:?<B8:Q]Q-5]@"&8K#P$]PN2_<[R)+I<KDB8[<3F1F!J
M&6XS&*8D^$E): 2B66.8.MIX_1;:!KCH:?MOQ@;41T%%V?D[+Q BJ#&($H,H
MCR>(TL%<.-8HR(:*[$C#')W,+2,-6FQB?!EI"&)3S6BD,86-[3$C#0CL0@\<
M:[B?#SN3?\?UYT"!%"Z_6O! $I7<5CR?NLUT"]A#$L_+^R8@:;1O'3*1B>!#
M6U=W7_-[=([WRP*ZT]^7.[TCWQ=9Q1E)E&0ZW6PW%;HNQ1#/XK^+S:CS?]GW
M!,/6P7/B=MR\>7\<#?S#&/C1_(LF'#3AO"L3CJMH'JD=Q_D>'1WV_S@P]M?.
M/Q[L7\,"8G_$_DWJK!?.NENJ%DHYI?;[<;K;CAH$Y]07*&O*K%JX-..ELI?/
M[N1OQ4P>.E7"K,A[T56_['KX$2Z0O-QXD6!IB-;M9Q*@B[7Q+9&Y3NEI. KJ
MG:AW'K_>Z4-D8#P%*N.HC+?35AO@OI'JY:VNZY$&6?2#:[T;+"1 8*IF0Q N
M")^W3K.U'<Z?.<&-(K0.O"_K@":S]2*6^RM1OR]RY?,PR[DZX\8'B:T[#:&5
M'1 T2:-;FLA#$BGCZ59$J9]WPDROS#<<9V"63\NS;\/5JZ8#$ZXVC]%J8&@+
M@'3CXS(UK4=*_O YNFB30)M$AXS8R9K79<OKSO6(K2ZU(A=<0E/=%V'-$ PH
MDTI7VQ3SB] >AO:P?BPF=3![M.:O5EJ1?YO/QV"SJVD4Q&EAMLK*L]G*]N,X
MK$<;4"/*T!;TOFQ!W2@RVZ+XMW3%>*:$]UVY]71:6'T'5"%1A02N0B)B1<1Z
M?(C55C3[1W"? I$_"/I7KGZE/)%96_!F/Z)'W.9*%$*V]P79=(5IXXR<T:<[
MEN1%F/C5U:FAEFQ=8_](YB074BP),0G_RN,RZ[WXD5-J=$E8]SLBEH;WMU21
MJ'?9U;3V3_[F/0]QSS8+NZ60BFN:36>J</SF+Y&&IR9#H%)S?$4@[W:7];FZ
MJXW%CHUM!R?]_GEEBM:O:0V"?*-8K6T_8A9<;@14[COS#]==;*PQ3H'(;9T$
M8,YG;70&&R=A",XG7O]5]"R.QAG>Q2X]$H>X$_X&MUOM)29S4VM!;MLNKY)6
MV[<C3S-:Q]$Z?GS6\>9:OW=[^:> [.6#"%:<)BHCA_#G8)7S<$$$E;^,0QK(
MSZP4!;6S9XP'#SN6RA$D*SL+](JH&I0+FL4A278K9&EO]TB1/WN]=Z;0WH_V
M?HEU)LD?"NG,LD>Y5R[34&_L-[?L@)03*K*,DU0HCZ&>#D.S#H@X546\MZ/?
MTW"1LH3-8RF7_[Z2!S*CD9XRU[X=D/MO>47++4NYX<4_79L.IK^A3$K&-7O2
MSZYITL7D<7K#8HVMU-"B@ZGO%O%*?NGP3_W<FB9=3)[1E;Q/#%-7->C"-TAE
M0RF"OLC+Q> 4U+;JQ#TI<I*H%W>36.4+FWR3II8P7%WHF$3'9$^%:??ZPX74
M3PX(T[!@T0/=CAA+B>X60.X6-.TZFW:-:!24'1"<0=>?#<W]LYI5''"Y4>X,
M&K4)2_[\E0%JXG*I1^N6;/I[;LF=S686 DO&_3V^U&#_ZE522^[\O;7DSEVM
M2<J21W_O*[GS:&/^LV33WUM*#011C?7"DL7/@%DT6<5&%YN SEUG&([.W;Z?
M6K TI0SMR]WY"^52D'2N'H8+B! T$T$NZ"Q/@B1>[\O^;8EOYJ9M.-E@'MA6
M]*)S%9VKZ%P=NW/U7.X&]8SZ;K9G/7EU;='7B[Y>]/6BKQ=]O>CK[=C7FXN,
M+2DO2F<IZ"J%4?4-X=##/QL7"LW3*XFIH\L=XIXHP/VU@-M7\4SG3'7I"HDQ
M<2(%YQ^,GR92L3!LN08C@&)S3^(U69K%1<-1W@F[P\O*:Y9*M+&B&9W,I0@O
M@MB-LJ:^ X:5'%\VNP3#$57[UKPY=,TP#@;C8#KGMLDMRCJZF48;%]08>H"+
M%6KZ_5@#W S*YS3,_H<0:H3Q<1@?A_%Q&!^'\7$8'X?Q<1@?A_%Q&!\WJOBX
M?M4:![\U.(30@39G-CZ!PPP=<&QKB_7[M3$(%(- CR\(U-TGZ3T:],<@4R(P
M(&'(<BD* DY#&J_5)PA6G*UCL:TQ$W(:Q5D@%U8T#@?M:#9_\:"=$HP!H1@0
MJI2$S5ZZW6VE29*P1Z717\@KO-A'5W(;G<]F-,S$="9_2^-Y>OX4+J0,>>WV
MZW1,_U["0SK/6/Z02;GXEIO3G/.#.^F5"['1&%!9_9W+.V,ZF^G\T0U'\<_N
MS58^5A"JX<VF"X8*8 4*X)YWU&90FSD^;:;%+0O.=&19H=7Z.@)G*>KRDVJP
M!#A7DYGG'G"R=VW]PZ<@H40IF,J&QU)EO O8+&#ROB'*@EO^.:!/*RFN:4,M
MO>4L_K3S3@A%K?Q]:>7=P.LKM;'4J^0:9/WF[_Y)G&Y/01VM^H9#$[TMD6Y%
M^.O&0Q/_N[PX%AF-)FOYVSD]BT5Q]]Q*$78CU0.].:/I,, 8OJ5*B&S_>$_Y
M\D,3A@W#^&?X5I$VG7T5I1E_^E!$5$67.X @\<)+;JYB\A G4EYI>.]@Q &,
M"XLB-(<OZT2+OB&:<=",@V8<-..@&<>SSE^']D9JJZF[:49JH6G'#13;BPM@
M!Q?(:\=:9S@.7*AODT_KBN'!Q?YVP'2MIC:@^7!)LIS+F6BEO2S9[,RX<:!/
M!S,-849L22R:$M&4V,24*"\,JKD;MG?D6:Y3_ER[PV5P,LLH_Q]*^$6\;LMM
MY5AP6;^6HN/^D29K^D4J/@N=9:+M<' 7H*///IXO7E#*<EU5C*;#P&;X7D[<
MQ2=^,0YPEA]9%PSO1P'&[M<TVN!<&DE51R59+=6_FC!=-];0#HXZ6SXX.[V&
M(',TK5TG,,RHA*8F_+SMARX)=$F@2P)=$NB2\&[D[D*M&:GCHA4,'*U7HQ76
M'ZGWHYU.-U*_2#O-?:3.D ZL5"/UB#2S1EHRZZ\F2@?,VBFSEIS[*Y72Q/'5
MSI/YP5\MO%;,M<EL^0 -<CDJQ?Y=E3\'(F/AGP^2NJ@([Y=:0E%P,U@E1#W-
M)$2^7)7/-.6B>*(I>$A(^*<(%W(\$2Q91),B-9^2<!',.9%C-_1F>B'&H\/3
M(S_H$T6?:), 8\+IB=J>IP>[<\*YBJ11&_GD>=]D RLFCX1'%R3FOY$D5U$X
MVRU\_K2BH;R%S^)U',G-J (R=&8K7_,>R9+^QE059'5S^%[4ZIE'OJRWL?CS
M0JJ[EQ(T<BHR7XMJFG>@)7VH9^W!9;^8\D_ZGQ!="^A:0-<"NA;0M> ]+< K
MH!NI#\([0ANIW\(SZ!JIG\,7G()GE))4+PE_+H/'B]^3,)/"(GONR_)D/R,@
M\Y(KT6A#0AN21\U\NI4\$@_'0D&AZ]SP@%UO\XQZR5XE0VW^0F]X''9NTF@V
M^_B6]X+Q&8VS7**%R_2&\IA%/2VE8:;Q+=NORCNQX^-7SH36%M+?3.-;MFF>
MR8L]C>)T+B$JCZ4J'1;HK*?%JYUOU$O8ZQ6BG6?42S; %>(X^_B6]S>I:$J>
MTFBG5S'UJP.^)_,YEQ NHUX.?6MZCO$3]"HK7*<_Q@4>0+)T0Q3 CR'L4/D>
M2/:Q^+T0,<+%KL#M0RQW0S)&N. O$?\0:^U.P8@\^F\U^Y<HH'./OO6$HUY$
M77F>4R:9)6&6DZ27>(GVE(QOV?4WO([9CSTM>PM*QK?LSGC+]R'HGD ,,AHR
MR*@O8EGXYZ40.8W.<GD/S<MKOMA9HOCC*X2KM0@W'@@CJS"R"B.K,+*J*LJC
M/YOU>XND:F. 'G,TU9!X=LSQ5?T[VD::<-Z[#W>D.>F#&9I&FLG>%C"/-*=]
M2%/[2)/A>P^V&6LB_;!^A+&FY@_CX+5=K6,#W%WZ96W7\-B >%^F3-OU/#:
MWE%0C.WR'1N"KPFHMEV6T0'X/L*C;1<+''H?VD5INW @\;\'SSGHY*V4I>M"
M!@="\>HA>:MF1IC)6U9$8_+6^TK>>GLLBI?7"Z&Q8(F4>F2UXFQ-HP,CRHW<
M6E]H1=1KH[[^W;2*AFNRI!7+:FHR'*&5&]3<:!3$MCU3PT<O8[92!\R\PFS%
M'\_D/;?+,/>RI-94C"^\ZGI[]9<:UG16VL5-R]K?;"->OI>&3M_+:3?[$2UO
M*[DP*$$C_@B#+_H1+_)O_H2P::JQ+MQ06]-Q=HSLQ?*!P(-<S8P8E6!FIWF.
M+FBW7O/W_(GJ;<2:]6>M##&@8I.;[<16(<H=,89AY!A&?J1AY'V;!L8<3#Z
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
M67!FIOF N09NC9$&73N$7,#[G%:TUS%;";3!'4IG7FTU)7#[UIE39RT*7.*
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
M!@0YW[ _3C<)V> DVTZ].)ABJC!MV,]RXEQJ,%U"70BH%='^(Q7M=P46R(,
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
M@\I<N#)V&7[C'3:ID#)VQ@^#;.-T5\/0];D.1W:51'I?A:.775/A5'^S)_I
MGE$]RW4P@JU][>]5:P\P;Y];GTG1QPUB8@>7&C8$W.CN'HJDLPU^OM>MX*)
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
MI"W#+ A"'C^3$=!J&#(L2 "+S=.4LU>> \EP,MO=IO1D39AAX$748EB3N#
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
ML7DXENFMNX.G?G .QWGPR;E#P<'1V;K^1(A  SGT B]QDN" ;HUSNF>><&/
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
MQ$H>_KFKI'M!FHJX% 8DW&NZB_1B+_"*?-@9W"QM.S.->I]7O6%L&]<X%S'
M52(Z!^TVKZB?QD2:< /5D89+]7.J^X0!3GBS!XBNXNF9=]X6/.E-6HKZ*"K*
MBSPT\Q*K!AYM.%#IH][&O ;E-U,%)PJ]QS#B>1UA[.<L@_EQRVQ?C\<,)<A+
M*0T2]KS?1!F4[68"RH.''LNK''\W=P?*Q  ^)IH6T>XI<4&5GV</0J-YYG7+
MX=#VF.*9<#B<Z>T)IW*V!5YD??!Z@GT-"?]6&A)1PE@O<'SNI2NJX3Q3Y@W.
MME]24)>O6$<LB*OU*9Y,$/#@E9Q^=[LIN#R=/::,UBT,I7=P]9+*&I P7XGO
MY_G#XNKF$YJ=+ZY^OEI<S1]<53G6N6;$[$+8+BCI)]A+\07F_U[%!7[Q4]'G
MN&4CB+^H7$RR#X"M>.]^3%1NM+3.;X@3B%<I8I6M2(E!44>.!3/6-2=^-?KA
M5.EJU.",%RH5:CD6Z*3$YQV0H$*I[/,MU/#76.%0X4U&U.D\T!*;OX9,V"VP
MOXI)1)Z:[76A9U6LJK8QC2MG!5RT ZQ^!:)O$JJNT@WOE AR@!6?X96?'DF>
M(5S.-*NP<V#C]/(.D:*EY?HY!QGS/6IFW^.JU7-:AC6^50JXX&WG%PINRN/T
M497(DLHM$_6%WO8^KXF-K 715GQ$(1<-LIUG5/03N8.K!D:ZME5S#!/LTQ6%
M!(W;Y3+T<=)1EK;_::6JC:VCFF:2"C+37DO8ZD>SSIDH=CP/LXC77@SC@!J4
M0>Y%Z>]1RLJ,$U:YRTG5Q'[&(9(T'%IL;%7+GW[(Z/K#G>F734!MA _O3W\X
M[:I!)OFN4FDR01C&*Y:M<+T <H4)XJ@@P&5Z.J26F;&):@EV$YB[FPZ9<AQ(
M!E%;1G=)2^4EQ?ZW3^3Y.P8MV7+=I?APJ+847__M?':PWXY_D-Q,NP&,7Y#-
M;F87,ZN\T$ =TC[EH=>H4'(BCNF!<HDQU4K\XWS'WN>4KD(;QK,2P-4$6/["
M4POV"@'_K)DOAXPHZ ER.P-%=89*8"BD2O4S-I$EQF 8 @K>$T8)+HI0L+K\
ME3('%[.A'VZX<XY=OJ:UFJQ^K5<]VK@)6>[<)$28\M9O (K^CKS,W_$]Q1FK
M#E[5I<?IYS F29AMKV+*PCB%^*']4?B]Y6><K4C +T.Z2D YP$#]3L(6IN9[
MQK#>%B<11>-=68^]G$]Y$4 GI.CH'R^9%*1N0:NB2C[O+RM?_O]M4$?A(H7U
MKT5G\\O;^WG1S18M9G]U=-OK0IJ0$:RNBU.#HC]_A6,7G^$8+\,V=W;/TX.D
M\=&H%J^%F\"KBP0-,U$7;E"+%7/H;F>@=)-;MFDJH*.3 OX[Q[>WG5Q_)#5Z
MR.<Z,F3F^TF.@^M=/(!P;$C[J]JB0XY!6*AH Q#K 1(CB1+H('=GG$ ?#35U
MF6)7'Y!QU)U@+/#XD'Y2#<,:OYHH6R?QNRL /C"=6.MD%&.LF;F-7L)LM>L-
MQ4QSE$-6F<-^3EV<<]C$J9>"0_,GO725XBR+H-E;U5X5@';O IGWE#(J!<8W
MG_*2KJ8/' E4;Z3+N&C8#C$S/]6MXL-,"W10LILIWR]L(WG0)I G)]!/% ;5
M_5WD)\KP'5$FMH9=]= (D&6T_LSC<#O2E!7>5]UEHG#L)#)+(*2TY\S-5L'(
M 810JX!A2$U0@591]1B=0+\'A;QGHW-7DSO%C%Y6H;]B0J5H_?7[%"7ATRJ#
M>U'\BA,_9%YYGBB-PA3%!$4D?L))X1Q\@K9G)$;@9T^7GE_VBL3T\(?\*93B
MY#GT,3P>L%IN$[3VDM]PMOL&$7AP4VO/5WLXC-'O[^)?XL_QQ2+^,_WGX?>(
MAR-.V'T ?O4H[GA"GSK]Y?O/IQ\O?D_%:!6[")>[]"-)8'$!/T".Q)BU&:$C
M0&>(-9W)BBXW1(=DJY ^BF,4>%L7BHJ2^"&#.6T$EB1<9Z;-F9G2[^FT(>OC
MRV_/9YP\$NFV!P54E?Q+@W-1]HIU(S(>$[F1E?KLXW::VMU454A_X3%J\\6T
M/J>X:8[&L\581X!5MHD&[!4<E+N<DA*L2[=D.T<084+93O9]S*YB*.D%JL\"
M)^L69F]_4#GA]W! 6^Q^#%F%WW7@KZ!N UBT@TNYG4(64JB-Y3"W,@81IY;^
MDA7WV"=/<?A/'%P%8.DO0SA7%I26T#R=YU*7'4UF<=TQ2W^C6 ;'Q8AM@-)4
M_$('2G:"QLS@KJ/0AF4:#JHV1JW K$"L3# ]J5V>O(,O :4W2!<=54J2"F4H
M1$(-UZHV25$1GL4G@Q4,/X2U:1V1U2L;.86L9QH4**'CG43P1[;RXG=\[*>G
MA"WD7HYOL0CCJ&*B56IUE#K1SRZ62W'CF"IL$?26"-9A'$*R&I3C*-2W%GU)
M\"W5PMW=HQNOY\W!,S^/MX> FZ+.@K0FB@2T;'Z"OP]Z0B=X17&A2-5"EGBS
MQG.HL13[VWJ?PZJEX<)[;3-8]8VL:N(.Q\!X=>JB'Z9?X,$+4T5%TG:%R:06
MK%A&]Z 3.&>><;)UHXKK7%]B<-%L5SU,5]!.B_X#T7[/7L0:;&7G7I)LJ1G^
MLQ?E;5)<ZEWE:H@",&Q<$SNJ?RA#83*(;)9[I$6,%8I[ \A-",YKF13=ZH/<
MRZK]S82 F&:]!\BU;4HU$8J9-,26DO0GPX@Z*%\PP"&=WNE/\,<4_JCQ(OWJ
M;S,J@P.0PY>1]W3HT6C[7=8-<3B.\0#!$A@":';MJ5::D5Y"6#[YCL]L:DO=
M+MLU1($W5$^Y]I%M^7T[4%!Q &N=D<+5Q_GMY[O[^9_G-P]7/Y?)(:X:G_8R
M#5&@F]W-\B7%M\MYFH5K*KS;KOR:'U+<$ON#F=X%%!HXJBIX$W1'HA#*7Q?_
MNJ[VTD);(D8PVX507W9E >X2$M,_?<Q2AS@U^7_[J@BI#J-<W%0.G&F6I/C4
MZT7L8S0Z_E1>+*)K!5S'%M42ZX3CBAK>T1935!O;4CS1+J,+:XXI&C07-7VH
M$XF1Q!(UL4]G'%$K':VKWFL2,].6V8'I;9ZE4#Z&[OMVW;OW%77ENW5H\WT0
M ';1ZVA2_(O(#@'55DAF)C>T ^<$/>*G,(Y9JO^2!<>.<8*J33LGB-JV\A,S
M9WGT;QFB0LFAU=*\5XC(H3_\H:,L6MM#2O7/#@<S7NC,>T4 $?I:_F% .;/A
M> \NRPM7.-MR*BZJD[4R A&CDC9N_2C"K1]U<NM'^]SZ40>W*N.ME5L_.N76
M0T8XYM9&*FGCU@\BW/I!)[=^L,^M'W1PJS+>6KGU@U-N/62$8VYMI)+1NQE^
M;Y[Q]LJ !=7++KSLJ*&:P*,*-S9M0QHW"3C<LC$VXW0*&@%LZU<YO70E,L1R
M&;U_YJ5A^D!WGA?<QC]["8NSNZ<HGK98G+*O:XGT;P?C)OZ_'9_A60$ZYZHC
M5X#A@SA"D&M:HH3N;>\\919LS2D0I;7='7H-7BEH7MNR!8]^5]QCU3BV-E$%
M4&67#,!6X:*4Y8/5&C!%K#>1[ZJC\/&2DU[*#%29.]H6,8#M=:=47U=1LR7
M6'+WW^[SC%1>I/DIR6U<67S&-5?U<LA>U:<VK-J2!?6V9(>"H9:PX<!>4=EK
M9.@*:+/(OQ>QR+_7:9%_;]\B_UZ'1:Z,MU:+_'NG%ODA(QQ;Y(U4<GT-?I?@
MC1<&976S(J(3VJ] H'QGT^1A@VF[.!<!ZNX66@0[/9?NFNEPT#A3WF K\"DC
MGWF;)0*XC.0Z7HI;.^_IY4GOJ @(.SG_@J&6$PYF5(WTGO!%F+(@'C OFSM[
M#!UF: D107"F-WF) ?(X"B@H<$ )Y,:>_"]'B5*JJ])4QD.)U$:]RA>%BL!]
ME;Q*U27][LBX$WE6P:_<.J;Q(K %X-*S7!1G8["M.Y;[*4NDR.52_G5XL-H?
MU"+#;/BT;L?B&NJ@9:OD47<6:9 MH*:+29:C)P?+E6I$VU*%V8%CD"G'-&V4
M*"V$LAT0&:<D"@-FMHI%QXN\HAP0V3ZT^8#(&NS11;D+$9VH4-(NOSVL2,+J
M3/6=7^T/*O+6\8#&,V@!XC2#0F".#[ .8A)Q"CFZHENPNC0]0JGGZ:'7=_NC
MFF8<!G:" ##ZE8%V+G_ZZ-MT5]9%-"O*T%T94]T2N]/YW !%:&\\:VI0854Y
MB]CIIB81)I%=,7,/#H+;Y9>4E[RZ?<R\,,;!53Q_]5>4SOB2),W7-=L64:1A
M1$5Q-0"RC9S"^]LO9;4V4J!65&MCR+$Z;_R@)(]1^"32C=&0M-.QA,3 NHS(
MUWJ/UW02Y8^@-;2%LZD.8\+7V@#.NJ\U*7$HF)TIB"=P]9>^<UDQ5GF=1+VO
MO<0WJA3,65N9^1HG3Q2%3PEYR590\\"+#P6YX-,*"D+'J*;9D(-&)6S$@:,"
MNG5E082^1))H5G3*!072H4K6?QZ@0<(PUA1' .9,6]PC&.FC@@4)\;#VHJBL
ME]HJ&1J?4I8(>Z-9D@0,)BJ!.A( S60D@K2QP0TK'$5]QT330^J\4!O,%BL
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
M,>$5<=,B3(S0@)?F?,B\))/3O\^\"(I!CG=F6D(=O$ID5BV#>:OA1X8E?Z9
M%9ZBR"**[4BDF,Q&[1)ATNMC0]DI+:E+DM#_X? IGK_Z*RA@JJSQ] ]I3.UI
M!VW\,G2YQ#YC\35YYL5?02U8<BP0+M PHP_IG+8VI>@D*+!ZYU@_ZER0D<@8
ME4TDI2Z)LLA F7.7D"5.4Y9T6B22IK,X8!<I'?UFA=]2D1S]HYL6#G4,4(D"
M*U_#[_[4V]4:F)K!ZCYAAM<I\GE38U9QA&[>'N*X:&XKSHY$<2$,'.U,K=!W
MK$L.I^M(%P3KS$P1Q$_+.6^,%@HWDC;U&V/S-J';%$7+#@R;@'?*J[5M\+(L
M"1_SC'EUBY>P&%%'HJ/(2H0N_41IB2T*S05.UM=4B,<I3F_P83:4KN%,"\T#
ML*:%9HE!"L>Z1Q7R-(\8=P<XHIHY!#93R;-&48$2N_+GA2?AC<)W>;QW)BC&
M/#ZZ"(LHS8>$!P)DK(92+;+(J!0:3%1#%I:0%&(&D9U%&+G4:MN2*E*KDR5L
M%\DA_F^LTUEPP9:0U_%AQ7LZ;JI57U<NBR,&QF(#R;2H%O713<:G-.')4&J.
M@B]Y<#W[\99Y0M/Y*T[\,,6!'(<*#*275SL VHI(DL=,)4S)Z/R'Q"Y5\"9E
MZJ2K3!,-O-F_G84);G=C=\;M=S^DN"'M1N<W0U792$/Q5K#:X41+T4) *3:T
M(]H#[$6H,M#@^SE,<R^"VF]1"+>L[0[H[B=5S+3F$8TWDV%0T0ZLNFM9UP0,
M%XNOI]%2XR3-'R%-+PN]*-HB^A_XDCW'RJV4G\KN#V#^Y''9"/.S%WN\<2-Z
MV*;,5WU?H)A"?<1OT5-"\DV1LK_QXA#.')]$$?8S:N!&VPGZYF@)OGDWH<;P
M)B'/<(7%D"3+[ 72^%,2Y5SW!'=W6OJ^(;8]IP8'- 3B]USII+"OX+EEF/H4
M@K];9#JXSV=#;<,H9UF7 :;H!>P%2LDL"7T(F]]X2;9%*;5<,*/B[DUX$+]"
M)]#"-*0_.S#A>G8BD>!.N^?@-66HV^4YM8;#[-+SV>7;9^\U7.?K,Y(DK&'K
MN;?QH']!RRFI,H3B&2H#RM8)*X.3ROEK=LX*IS,@Q J?,)10B=,$%5BA"BTD
M-F]#A[@27Q(=A!^%C<KL: TF:O\X!KPI3@Q4!A3QT*;B;*O*UJ3TE!&R1ATX
M6H:::*(4=W\R?8ESJ/]=;#JH=A"R0/Q+#(6_?=#7CJZ*M8VG\<P2@NOR !-"
M4-=I9H@:.H\VCF)UGDW0#DM$T42B1+%XU,GQ=L^YI[!$=J7%'1@J$,AR29(+
MDC]FRSPJJPNV" 215Q3W?-?0IK?U>9XDP);%U=FF1(4%)D*+"691103,)R?,
M*D1WHD),RWH7* =GAPTI9DD"(0"P.<ZVNT?NO"U\-:,&=%"<LI^@.'=Z%?-#
M^%/2WC3;("15W4T_1J;W!0.IXG4?,044CCB&5-%]IHXYJJ$.GJ7Z<P7ZB.$_
M0<4,)HC/ 6[Q[XK+=C8/]Q<:!O<+L<@";TN>4?&\Q&&6TV4OYV1(GG5 <B3/
M&C"R=IVJ'W47\G 8!8=<R!:0QW0A:W!_:)1?O4MF67[AB([Y-(N#SU[R&X8>
MSW/>4:U-#/6^H"I-6@<V[L+RHN)29%U"=L/!_:0E\O0:A5^5!S3<X!?VDV1$
M6LO+)F)\*B#&XV<I%':?=U03?*B*;6AZ*EHS<PUS7!!'IM)Y.3X31#'B3XS@
M )'C/M$HGA::V_8+\QS!D*4J,7Q7) KHFL[_D7?=4HJ]INSE[1[>GC.W&P\U
MGZWNN64D\R)9UVR%!#O?..@)6L!0CIRN@AQ%5$DYBO..W0XI'G?-[QJX+W1_
MV%6)!F'Y!)3'+\.S3[_7>0(.G;+F Y"A4S__QG3FM;"@X*VHAA/OJ&@_\UPG
M6[XQBP^'>[+X^F^4]/N<<?R#Y&[:#6!ZJWRYN5K,+]##8K:8/UAEB08BD?:9
MVY6R]QA" 7$P]Q((94MGOI^O<U8=]@(O0S]LZV$F_J*B?.T'8*&;60D1RH,!
M2!6I:6(B"B*S1 .5>*"3^@0+5-Y-T)PWG! JJF1(>$HP%U$GM.V=EF(*:T45
MK0O\C".R 0=6MTM(Z!WE_=4QMNFM50)GNG.P ^^(VT2H3)1(9[T99<GQK&A&
M0\?V:Y)"=N7M<N&]MG"=XBCJ#2MEH-D4^KS9@E]'B$4JN.IFJ;0J1!.I[7+R
M!7[,+JK^+WV943U/*W)FRZCF"\ ^9F@'5Z*?CR'.ZZ,ND229[3+\5%G":<])
MV_*4<JG]O='L%=?? ZM63E\5\T$%]&\6\_OYPP+-_WHWOWF8.ZJCW\P"1) Z
ME@7D\2[KZ3HM\(:JH&P?V1;K=Z"@L@VTSD@YY30CZ#*,J1460E&WC.XK5MW(
MS2$@P#U$@8!V=PU3>V[H;+UTQ16>[F.A]WG%'=,ZKJW]THJ RF[1,9LAQP>O
M_QB3> H8(+)A14[C)^1!1BF[WG"R9_JYAT@3T;;R5'2V$=?%15Y15JO:AS9?
MEJN /2K57(C81(6"EB_[\L<4_R,'+PH@V%AC0.A9U<N\IC&-1T=50!&#*EAF
MP-2%52=9B12M+!_JI;R_ADIB5=%FD*4\^:3M<!=]3_60[QM?GL&><?)(I-/(
M2/PTA7)U2F>[_DDH:BQ]B(QD=BIY?O/9PQS=GEU??9HMKFYO'LIK>D=EU,0W
M!E$FY2A$A)Q@,",.3.\?%I&$(E;K<M<_0*G7HK89*.R1"C9BP">H N\RZ*J/
M4_KWQXBTK@4%/GL-6X.JNI_6HWF5HUK7O0 P^A5 CT+].J)NNP+63+)1R-=S
M%?WKW*3R=6Y5\SK7KIDHXR^W/:X/CXMQ:B2'K-(O;AOIYUSJ7I"U%\;B<G?_
M>7V2EX_K2/9RX*.1O@<T[I:_381SRE5IGYNN]WD]7)5:<] =<E7JWCO73^-V
MKFHCG,MS_3Y\6F6WRR\I9C7<A8[UEG>TG.H'8QL/6KOZ].?%]/:2?IBCV</#
M?"%LJ%N9C0ZKBB$Q)<LI10,Q/$9PWK?Q4.MQWTE*R_EA4!@4MV@C119S>G'4
M&EOU==5\,4$PUO+&!/%1RA\S-E>%/+*Z=V93P':3/B;+:&0H14>T#[_$09BR
MA P<S%^AEB]O%*.R*?O&,K%#VV".8KNV(:=][VJ@PI H!,#M3RA<;W*('0Z+
M4+'Q;>9>!A7=V6+TMATWS)LI\0B*A?=:!%&<X1@O6Y.9!-]2CB/N'-U\/#$'
MKQ0'IQMU!1VUQ %EWBNK&-@;I60L#EJ,2X@B_>SNE,LP#C.ZF9\!NXP2/'R,
MN+H,VSC)PG\RSU^!\&Q)5^X7["67](667:1A1,4=-@"RK2-R (HJ&]<J110V
M-<=ORA!$.PRYR3E!\[(P:!W9"?( 3P2(HG["&)(".KB<&%BH$:G3-94?<%U0
MP$/MVZ-Q#!NZ%3Q+-T64S'\P:<P.F(]9"[Y";'R*<B?[*9B_+6LPWHU[21=9
MP[ZM#V-AVP(X>[OV>].[5FTZYC<MX#7Z/;O'>HI;]G@!1KQCV[5SU6%L[%@E
MK5-UQ_Y@?,=:-"MD\1K_CFW1DX<MP#AWK(A1/6@LPWMWH-FHNH'_R*J&0+H4
M9@:AR?WLQ%>@A-RH=W:O&:QA/<;L/F.J_PO1XC@[&,N*RZR .4YG68&<>3>9
M,A6L.<B8:ZR7%J/PC!VRL;)/K'%5+ L#+TQ8@<;;996P?Q6G6<*:]J9W) K]
MMF03J7=5-[L(#-.;&Y#@Q3FA+NFNL$$-D0GBJ*!?BW]=1_#)+0X91/'1GU\=
M;MR!H]D[PVRZ0!71LW2.J5'"\DGFS#$\E*&'G6:NG<3R*'>XBH<-9DTTV/2S
MJF%G1S"HT<&N7'#F>Q[(RX.DPEOQ0]]0G6WQ@J-G_)G$V:HMG73H<(9]6X=@
M[;FW/ICT9PV?EEF7UB%^H_9JM;*F@F.K>V%&?_SKB@IS$A V[E@P>V%@;R "
M["W%?ND+^QJ#PULJRJ75U:TXBHUH+Q7'KNH9_]%XK)<]9[TD6J,^T3N<TH.H
M;W>KEMA<DN0>@\_1SU@GH98]V?>XXN9K&]867[;!5]EZ&N8R)+7H',J:!HGW
M@@+RTE>[R= 6ZN42(DNN,2NU@D:LGD&M*+FN++]A6)I7>H?3Q:[R>QN_!=U7
MQ#36N4Z6BZWX*QSD$;Y=SOQ_Y&&"@XZYG&T_>W\GR7GDI?U56;0-K%J^93 "
MQNN\%!C")7*)(^K<3REZW"*&*6*HHE\7'OSH^G)9XV(3<RMH^90F"0Z?8EZF
MR]\N$B].H8H[B:%#+?L8\8ID_ J];T,-'D_U;%:%:SP*@R.&2LQ0'3466%E'
M;G3Q&(.7DVA?(P<=+/CF[2]PW?7LD,X5AV.:9MK;Q9_G]^CZ]N;3=#&__WQ0
M?.DGM>)+>B:B4G2)M:O@H"=H!]QI(=M.5CEL4]%-MA'Y)3][8'AF6W;@]YT5
M T8RX9]LAFB^\B>@-$%=]99+S,:B2 U9.%$/G\AJ6#9"H-'[&<4Q@#Z.U$1B
M9U6;8='YL*JQT#BH)2\ZZY,^?03HK$5G";XL$5*>#G]4:W6O:6IJ/I-FZ&Z,
ME&[&(7(D<W$TL'TL:"X(O#%(U#>.;$ND<^"CT>5%:'TDG04(:)?'SO(TC"EJ
ME.<?P[AN+K2P6/\+BAS6/K!I!BLAHSKHL9F. G0G\L0<RQW&EQ0O\^@Z7,J'
MX1R_JOT^8@?"-"M6'L%PYP3TN!,0IUFX9GV]<X8.BBBF*3H!K[J2CF!FOOIO
M$S@V"- 1FJWU"X0&#A2Z)F@CL]U-.?>2F)H+Z1U.F HDIFD(OJ6X%7M&-[T+
M2_"(PD<,@=%E=HG2GR@2590'@_3I%3CK]/UIP5?PS=\><!R2Y '[.15FY_3_
M87;I^=P2;6J.*/>2)%>)#6[\XH<A@ H,$$<!E3@(-D^T,[& ^"S/K\'([JHO
MCS?T5]:Z((R7)%ES>W:#D\P+@?.@(72VPBCEE$@+2OB<$LL"Z6^M[B=)QB-J
M1+<KT:MJG6*BO.]Q11G>-JSI?<;A(@IX=$*[E])$EGP#Q?2Y%WN!=YM\2>^2
M<(WOJ7IY1C]>AX\D:9?3XF^I".K^T4US$,< 41'UY0$Q)!!@,4%GLPE\>WUU
M=GNO+K!-3-"PQ-ZCR(91).$4\>+?J,+_>S3S@?D]N@70R=GL'2,3B0,ZVA54
M$G^DSZ';Y1*#P(<9HQ-&Q7<.I+T$^Q+%)7,5SM,1*B%TA31@I,$!.\(0;4;H
M] 3FC.0":<BR-8;>**Z%7;:_IZ*+PEI=X&<<D0V(OUG,G/<YE3@/9)F]")NS
M@\929'TEF,:;1!5(35 -K0D+K"DQ0R5JH].OAJTBT;HT[J,([G&,7[QH@9.U
M1,1 PUL:HP-JH[O,[ZFAH2N3:=#,5)JNMP4Z%(@@P,2EOU24N7HB&%KI:KLQ
M"U65_; K1J'I$>66*[NAS/=7V<%RU)>D@6Y$A!BVW2K[FM!%F/H12?.D5ZV6
M>%/9V=(+P;S?Y5 [WB'AOI>IS!*0 71UTRZJ'K'"?/LLKFB6)!1YS%+9#CM(
M4W6F-_Y6\^@#VT\-Q,*6NJ$)W2'=KJQ3:DA7K#JR_*ZM"(JKX[L7OEG@S&P2
M48(9.[KT[I"&UEM:%W.@N_@>/Y/HF6IFE8HF>K4G]Z:*VU@,@GGSN<"BII=K
MN^DS-46#SF,/)15%2$61@QL_1-]&3U3/3ZC9XI-D0\"YC#8Y_0LB_L+8C_*
MC;C":,GKD<* 2T3B)P)_OI#D-S:RMPFA(VV,<<#3@3R(J$E#%@'EP-DLR?AD
MP%(["-].K](TQ\%=$OJX#"MH<RWW/3\DB+MI7*O!SDT(*,=MZYF-PJ',H2,.
M?H(8 KL8&'02QB@@4>0E*6QSE,*W;IP+_=QT&-G=3]2!A^-U&./;)=^F9R1)
MR L$VRS(0[ZA BTKLO7FK_X*3FYZ2%\5+7;A-NG/.'BBC[<?H/I'5SED]6%A
M/&B<8@H'1''X[I"%4ZE %Y7)I"7"[, H4>;7E 72ZH>V2Y(9/-BC@K[%4?ZX
M1]^TH.^RH"^NT[?L+,UND-&*S]#!R6Q@1Q'#:V[WA.<>C_-.%T'C,XHG^=Y8
MMD[O/: J)_9 K#-(F94[I<O,VW/W:;?-RT^$J#.&;,/;#?R7;4"?(A@^XSM*
MZNX$F $C:<U3[(1H/$:BYJ@IJF75'3:CN1$>LEB]N8$2*S X3B]=/> LBW#
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
M3('B!_F&G>0M\1^]SRK$@[2.:4=QX?!<!87T$Y1(4<FNL/]$2/ 21A'O ]?
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
M P^5Y-="*JD'QL_1 /B8D4H4$W3:\X]Z";K-=]3FM;-WL,)MY@XC#[E_+Q
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
MYP59J>]E!"8:]N"1Q%(RE1%=&I$-8-(2K:4YGG0,31K)>4RZM(BI,]\Q_0E
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
MS5X,XY=IO;,\O5WB]1U;:7]*4AJ!?8X!Z5(V"4\JRL1&Z2SYJ\(4UQLS_[-
M\M!G<#\W6!*'G7>TMI .];)'L;E\NK]+P9.-] :9.+CE"1LA&R; 6@'6"K!6
M@+7,S(HN#8!H:SV^2*@;"@!I4;Z 0X )HV&8^"*= )T%Z$P7.NMCMMB TGZ,
MZ)+)($KB-2[C3!4O$W0W"HI):0C(ES'DRR5H252-B4^4TV:>2._9E#8<A!"4
MS:\+0M<H*2LJ*04E:S@ (7=+Q&W2DY@B,$W0/A-',3QAPRH8$V?H:GY;,G)X
MAO35G.F..65$L>U?"L[".P:$R;]Z*[?5/<4ICHOGO7D@0< [VP>0+(!D 20[
M;I"L>Y,@^N>/-T+JMOMA>ZTW6!!DUD U=6_0(;!0U$P%;R9- ! #@*@(($)A
M!QL@X4\1BHN<%UR(UJAHX#95I% VAE&XL)N0@!D&S/"%Q.O;KQS*OV'_B"$Q
M8:,AL$)^NEZM^1J@=P6*V5;R7'_W&95+DDJP0Y6.YJW\&9M0*<ZJ$C^@NO@"
M+C&B9T])5K'%=\XVT5.R6E?-ZK^:GVU6[34JZFWRY+E]  E.8.")KHBQLZXT
MM-O$T4]/V+ )XAXN@Z[(S<[V%EA@F@5Y1FAO1VS=-L'M ^H<XAH#9!L@VP#9
MCCDK3.AK1%<E\D7(W4B-,;79%_S/\+P%:BN^0(N&I*MK0H/%['CA1)-B[H!/
M?-D7@E\@^ 5T XN!5K4-]\#/$>5;XGW,Y,43U-<HI_7SHG46Y\HY^,#AC#H-
ME&@*_@-C_H/3F"XI*LL,I3>(+1Z<E"BMU\?7')>R2X3A_08@\]-F&]H]X9K-
M&C%U@.;'X7NI!; D&=O/X_6Z( ],)B\:F5R(JGTM(/>/<9'>L<?*7!9M;6R"
MV5?ST[WM[P9E[/6GIX26M%'[^ YY'3_7,Z+S0M%A1ITXMN\)&U9=%-/']YE>
M-R?%BFVJJ)[R[<YF8&L+Y+/]E"-EDJVLK8D]0J7.T?9&YHG=TTWX3.6J &5&
MLG1J@/I8< 7M]O']G7Y6%+Q&7[VOGSR_V>OKT^_E",Q3T-L;\U'!\1<<?\'Q
M%QQ_P?$W*O;<:O40DUN\+Z)LU;H(3-7Q10;=H+-8-_7%]R":!SVP$E]$ _"
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
M'&ID2%W)EUFC(JMAU&M?XIBZ)=?+-+. ZOP0S6-<1 \\["-:H9C7Y:E!*#V
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
ML1)"Z6E<%,_S9BYTAP5I##$)%]>DB#U"?YQ<GPONM^!^"^ZWX'X+[C<5H&\
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
MK0.BD&I%-_@R00![RUA'K7+PHRM+9[CH?N4P1E=$$*+[A7&)?5P@1QCKW^V
M/,+X?5T?^1&&[+<M-RW/VQ$&[5]*',]'&(JO&D9@(VS\0Y2AF/8N!-XYCM%
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
MV0AT2R&B7U!Y->?W=FQ^204\J0P1;",W;*.1B-T=<6?\A)-6RI>VM4[Z'2-
MLHP[6CM!OG1#[6P?#.M@6!^'8=UU)!-M-<07"77M=D1Y7_%&,MV(!.2D\ :@
MT9XHQ^G+5[(*?!$'8+]5,5_]#W<8#M]5KFGKB@@"OBO$=_M8WQ80WP]1_++N
M:<0>F/$<GKAXCM95D2QCBMB7.$%1G-76!W?_STD1W>_8:D;@[&P1U$:62U3B
M),YV4@(BQ@8I,HDX&V<K(-;&$.M9]@<_&.?E(WL?%WDBQH#E+0<@Y031LBSB
MG'+ODI@.2;,!B#CEEPAL1[]#R3(G&5E@M@/^?<DF?8E2,66J?0<@]]\DY\6R
MV8DB)DO49H#'7R/"]I\'\B1^NJ#)$ _'^37! FQ0TF* 1]\N\9J]Z>1/\;,%
M389X>(G6;,^6/+JMP1 N(\0:LBWH,]O );XB8:M!O%:TBC-^Q7>&>1ZOS&4E
M:SD *2^'I+WC<I]A%^AQPV<6W(!6[SO>LQ+.F16R1YB !4"/X.(+X8]*7AHG
M=L/@^PF^G^#[">!U+_!::D#Y EE#A2&W97U!KZ'2D-J88&$HW[KFIC @!A]8
M)LJ7J[DI$SU$"BPEY4O5W)22!"\!BT+YFC0W1=$)KH(%\HL? H&@WF"9?/1#
M)ET('UQ#<UQC!:MH$IS9%W4UE)%P.JC DB3>\DDT<#W[P0,[1(>MXCA?\ L_
MHYA25-*HHFA>95&&'UYJ4O:+"]!\F$67?R^*@S?_@*S@S0_>_%9RS]AL*'&^
MV#WM64Q>5]L07!"""T)P@>_!!9H'LT[<0"\=P+;_/(0$6 T)J&A)5JBH:Z7Q
MR<2VK_8S1:&'>3;.<<Z._4LVR].+W1J8\27PM5X EW@N\KFK='6),7K"MMH_
M2'&:L:4NF7(:(SC%Y@N)7^*5?)O0',5"'3*2LX-ZC4HT6[ ]K [MERZZ[@XA
M#,>_3'NF1Z:(SU?YY! U.]*X(5UM*(0$A9"@EKEPI"%!.FH#&>@H]D6&W5X)
M;>7,%]]5SVD&-D9\D5>(U N1>B%2+T3JA4B]$*GGE)1"I%Z(U N1>B%23U]%
M&R)2SW$-3=/:48@J\$5[ZVD7RB%17[2ZGD*".A5\67VA^%:(DU6,DU5W#EL(
MF/TQ*OEV%\5)0BI^Y4.!$H0?^!N.U@5Y8*?N)E$Z8>\"EQ$3+=6.F!WH:29#
M9@<E.<3,'I U8LSLYGW=[%[7+,O((P<FSMG95K^K2_:JSN9SE)3T:LZ^17B1
MGSTE2[96#]V[@XP9O1N00:%+<Z 9"PHF&W1UF'2/[[^X3Z2Z+]F&_/;UGE8%
M/PL$OG.E,:(?CHG9'UUG]O>"G<U7\[DH[D1QE"C_Q1['U]N%UD*K@#U(EQ 5
M%(KS#!-D,]0I$:)LCB?*)MQFZ+3!O48%)BE[?E%>.FA[]U+-O)L_4E'!58$1
ML+R/C5QRMIS+35O'Q--7$1P/_7M Q3UQJ^3\*%;R>(A[LXF=Y1.>> *#RP*2
M^.Y#E*&8JVW<,4!R[A&(R#PB3,HQ=SXU/T?H:8UR]J\>@MCS*2:1PT%(#8BA
M,<10:+[T?)$@(&V0R6+2[+WDY)P2*L*+=K]''^P1>;657A>UXH:VB=[>W@(B
M_+"Q;>)_9^?ZDBEV,Z:KQ OT"=/Z_+IA4_\:%8D8;=0=QC&&;Q#?/;<_WJ%B
M]4Z'8<DPYAF^X:1=S;_2QI=Y=5_' Z<7._V-Z2NON;G$\3W.V(8MX'V $2W
M?LLZHK-8=6TMXH8!8 T ZS  :U_M(0"K 5@-P*H3P*J+$&&7=NS=O)!*H^M
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
MFR)\CO.8*<W[BK" $_@ -D\,.)6GS<IFW[TL[0YS8]C!G1'.17T7>H\YT#*
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
M-_ABC@+X;;%%98E$OEBARI*!)&#XLIC4A*,2J^*+Y:DU?;JRJ<:S05T6CGK
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
MG"T,!4,2P8+Y"2R8CXU@<J9TE)NV[HIF(",>+,:?O1<CW'H&"^T7[X76#JB
M!?114T!WKF]>,&\.7.E4UMR=V]Y[.S[APH*KZ)-:=F"\&BZIZ9>3U/']6XA#
M>O\^HFC!/]>0&)OQJ_II>]\6Z 'E%>*)$ M$%D6\7N(DSJ(:2>1-R3Q*-O7"
M-<.11J;"9%22$59"IG/(='8D>$L(PX^\$$ !/$868P_W#RW*/=</^W0X\]E7
M_YE1'%_'"9[CI#617-K&#(FWC3A_W1-@ZPH!M35$\G:F[!/2LGI ;<W[ <\^
MG\VD-S&];6">R)MF;6TKPA1Q4N[?N<YLD:Q*<;[@NA'['U>3!-QHC!02B(-K
M>6C7\MCG2? P^^]AAATH1.FPG+I,NEW."L?PU#VFX G2.X7645\H6 !=NL[4
MO9[*,T$[G=Q1AZ;27MEA TU]6PAYU).(3'(V%W8 $\IY?'K[)R?7"!0M>Z"[
MJ',WU2'[U1B >EV0.5MP[&7%V2TJ'G!2QP?6#FQQX4AX+W<P7MFT&P'.[9[E
M8V.,["6E55)>%9LW)( 79<V,$LIGT'8R"?';SK;FD:M+1D1.D10/;6US;)#H
M.WN,;^:*]!VUM@GH;4!O;:"WTN,C +7' =1*CV:B="!.71PPC+9;EYDZ#@.9
M%H #;>I8#$0,6I:*#Z M='Y(E-*I+Y, 5TX"KGQ Q3WQ![!\)Y*;?< R(_DB
MX[?*;]/-A1$" P.7V@]V L#L27V(E V1LHX O>IVJ?;<[X>F]EQR(1XVQ,.&
M>-@V(K^0YE*1O)26Q!(U"TAH0$)'1D+UM_Z B!X'(AI"5W5@T1"Z&D)70^AJ
M"%T-H:L!"W86"W:Q2)7<%C*+[R8DIR3#*2_)\:)1UU5%>8W1 BU13IGRO"DM
M"L=O-0<VA,_VHBX$D@Z/+PYC)I_NO[NF+- 75%[-Q1%GDAXV[U-@-#3$7(IO
M@6AM8Y[4S6U_;\3(J3HG!<*+O+GS+'F^*^*<QO65L[,\K3]ES0Z?_E'1DB_!
MCM<U[L/<$EX/4;@PA67T\=I!][1V?VIPU]([P(AJ1%_-&W&RE=$BY(YWHSE*
M0$W=T$T5WUH 0?T'04T:LY.UYX,QVVK,BK50[Z:$5!!:&HLO<T65>:#<AE+I
MQYN)%FITCB1KD<TP'DHY+=DI( 7.0'ATR22R)!E[/S1"?U7LY!X$P9.,:Q_
MZR0.CM_IA1V=5JN*[TL/Z&P^1TEYC0I,TJOY+"7KU[N5,-9+=P@S<56=U+6'
M6*ET<X,188";6D?SEN\L21H*42K:\J219<K]+;"8IKBL,W"N8YQ>Y*?Q&K/S
M1,X6I(\-5K:KF=X1 8VW?%>[C]GIR-\%>Q'U1GK#]S>*2[1)RFGFX0U*R"*O
M1^$5S$7(AZG'6O$#K$A^6Y+D3^E\$+:S$.Q9'U2GVWO]6G<>4-O@K.B)MU^3
MHCZ-RK+ ]U7)88 [<EVKECV@>,"H-BHWE&SFH/0L+G*<+ZATL<@;6T1W#Y8#
M;5$__O_VKEX)01@&/Y&;Z.R=#"[Z$-C!1;U63A_?DK)PVC:)H$UP8: $FH_F
MI_E:(,G\R00JF0 >M$^Y [)X"B$OJX8XF*JS'L"=<ZTY;EOK+3-$8PC!FR8$
M:N]YXD.*)EZ6@GMSAQ:.=B^R9:D&;0>83KCZ86QS\ED80\WD?7ZD\L#>4SH-
M+EPL97:[F@6KB'#D,^$2&5Q2/A]1!TI2Y0MZDJ:.9<+B0BAFJ%MIC,:(5\>2
MOE.!C1=FCJ?.X-[N;J(7JZ4[:++66*227(7T/3%L4T,4\:1;VE0CZB.LI(2X
M M<?7>$]^.?;6XD?5\I/&*4;% ,/?E% G46QP8H4BM1EB6R XG5"=>$]B=%W
M&54TMI4&;$<EV=#0K31 -\8:W34O6:C/1?[I/5^DQ:SAZUNZ0V?0_LP34$L!
M A0#%     @ 2'2'4D%GOAI;\P$ E?8= !$              ( !     &1S
M9W@M,C R,3 Q,S$N>&UL4$L! A0#%     @ 2'2'4K@U+RA6'P  N9P! !$
M             ( !BO,! &1S9W@M,C R,3 Q,S$N>'-D4$L! A0#%     @
M2'2'4HJ\+;U##P  )N<  !4              ( !#Q," &1S9W@M,C R,3 Q
M,S%?8V%L+GAM;%!+ 0(4 Q0    ( $ATAU(P'I&3D7   (-)"@ 5
M      "  84B @!D<V=X+3(P,C$P,3,Q7V1E9BYX;6Q02P$"% ,4    " !(
M=(=2 O:I9LV<  !'@@@ %0              @ %)DP( 9'-G>"TR,#(Q,#$S
M,5]L86(N>&UL4$L! A0#%     @ 272'4J[X%!^8>   L4X+ !4
M     ( !23 # &1S9W@M,C R,3 Q,S%?<')E+GAM;%!+!08     !@ & (H!
(   4J0,    !

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